seyfert 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) 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 +1 -1
  9. package/lib/api/Routes/invites.d.ts +1 -1
  10. package/lib/api/Routes/stage-instances.d.ts +1 -1
  11. package/lib/api/Routes/stickers.d.ts +2 -2
  12. package/lib/api/Routes/users.d.ts +1 -1
  13. package/lib/api/Routes/voice.d.ts +1 -1
  14. package/lib/api/Routes/webhooks.d.ts +2 -2
  15. package/lib/api/api.d.ts +2 -2
  16. package/lib/api/api.js +2 -14
  17. package/lib/api/bucket.d.ts +0 -1
  18. package/lib/api/shared.d.ts +0 -1
  19. package/lib/api/utils/constants.d.ts +2 -5
  20. package/lib/api/utils/constants.js +3 -7
  21. package/lib/api/utils/utils.d.ts +1 -2
  22. package/lib/api/utils/utils.js +2 -3
  23. package/lib/builders/ActionRow.d.ts +1 -1
  24. package/lib/builders/ActionRow.js +3 -3
  25. package/lib/builders/Attachment.d.ts +2 -3
  26. package/lib/builders/Attachment.js +12 -13
  27. package/lib/builders/Base.d.ts +2 -2
  28. package/lib/builders/Base.js +1 -1
  29. package/lib/builders/Button.d.ts +7 -7
  30. package/lib/builders/Button.js +11 -9
  31. package/lib/builders/Embed.d.ts +1 -1
  32. package/lib/builders/Modal.d.ts +1 -1
  33. package/lib/builders/Modal.js +2 -2
  34. package/lib/builders/Poll.d.ts +2 -2
  35. package/lib/builders/Poll.js +5 -6
  36. package/lib/builders/SelectMenu.d.ts +1 -1
  37. package/lib/builders/SelectMenu.js +17 -18
  38. package/lib/builders/index.d.ts +1 -1
  39. package/lib/builders/index.js +10 -11
  40. package/lib/cache/adapters/default.d.ts +16 -9
  41. package/lib/cache/adapters/default.js +42 -31
  42. package/lib/cache/adapters/index.d.ts +0 -1
  43. package/lib/cache/adapters/index.js +0 -1
  44. package/lib/cache/adapters/limited.d.ts +17 -12
  45. package/lib/cache/adapters/limited.js +80 -36
  46. package/lib/cache/adapters/types.d.ts +6 -7
  47. package/lib/cache/adapters/workeradapter.d.ts +6 -6
  48. package/lib/cache/adapters/workeradapter.js +13 -0
  49. package/lib/cache/index.d.ts +18 -9
  50. package/lib/cache/index.js +319 -21
  51. package/lib/cache/resources/bans.d.ts +9 -6
  52. package/lib/cache/resources/bans.js +13 -4
  53. package/lib/cache/resources/channels.d.ts +6 -4
  54. package/lib/cache/resources/channels.js +13 -7
  55. package/lib/cache/resources/default/base.d.ts +7 -7
  56. package/lib/cache/resources/default/base.js +2 -2
  57. package/lib/cache/resources/default/guild-based.d.ts +6 -6
  58. package/lib/cache/resources/default/guild-based.js +6 -6
  59. package/lib/cache/resources/default/guild-related.d.ts +7 -7
  60. package/lib/cache/resources/default/guild-related.js +10 -8
  61. package/lib/cache/resources/emojis.d.ts +15 -6
  62. package/lib/cache/resources/emojis.js +13 -4
  63. package/lib/cache/resources/guilds.d.ts +9 -6
  64. package/lib/cache/resources/guilds.js +27 -6
  65. package/lib/cache/resources/members.d.ts +9 -6
  66. package/lib/cache/resources/members.js +22 -6
  67. package/lib/cache/resources/messages.d.ts +11 -7
  68. package/lib/cache/resources/messages.js +19 -7
  69. package/lib/cache/resources/overwrites.d.ts +11 -2
  70. package/lib/cache/resources/overwrites.js +9 -0
  71. package/lib/cache/resources/presence.d.ts +3 -2
  72. package/lib/cache/resources/roles.d.ts +9 -6
  73. package/lib/cache/resources/roles.js +13 -4
  74. package/lib/cache/resources/stage-instances.d.ts +2 -2
  75. package/lib/cache/resources/stickers.d.ts +9 -6
  76. package/lib/cache/resources/stickers.js +13 -4
  77. package/lib/cache/resources/threads.d.ts +9 -6
  78. package/lib/cache/resources/threads.js +13 -4
  79. package/lib/cache/resources/users.d.ts +9 -6
  80. package/lib/cache/resources/users.js +13 -4
  81. package/lib/cache/resources/voice-states.d.ts +11 -8
  82. package/lib/cache/resources/voice-states.js +15 -4
  83. package/lib/client/base.d.ts +28 -20
  84. package/lib/client/base.js +58 -56
  85. package/lib/client/client.d.ts +7 -16
  86. package/lib/client/client.js +29 -31
  87. package/lib/client/collectors.d.ts +10 -10
  88. package/lib/client/collectors.js +26 -1
  89. package/lib/client/httpclient.d.ts +8 -13
  90. package/lib/client/httpclient.js +27 -218
  91. package/lib/client/index.d.ts +1 -0
  92. package/lib/client/index.js +1 -0
  93. package/lib/client/transformers.d.ts +68 -0
  94. package/lib/client/transformers.js +99 -0
  95. package/lib/client/types.d.ts +5 -0
  96. package/lib/client/types.js +2 -0
  97. package/lib/client/workerclient.d.ts +14 -14
  98. package/lib/client/workerclient.js +112 -66
  99. package/lib/commands/applications/chat.d.ts +35 -34
  100. package/lib/commands/applications/chat.js +5 -9
  101. package/lib/commands/applications/chatcontext.d.ts +17 -17
  102. package/lib/commands/applications/chatcontext.js +5 -5
  103. package/lib/commands/applications/menu.d.ts +2 -3
  104. package/lib/commands/applications/menu.js +2 -5
  105. package/lib/commands/applications/menucontext.d.ts +14 -13
  106. package/lib/commands/applications/menucontext.js +9 -9
  107. package/lib/commands/applications/options.d.ts +1 -1
  108. package/lib/commands/applications/options.js +20 -21
  109. package/lib/commands/applications/shared.d.ts +3 -1
  110. package/lib/commands/decorators.d.ts +38 -20
  111. package/lib/commands/decorators.js +17 -18
  112. package/lib/commands/handle.d.ts +64 -0
  113. package/lib/commands/handle.js +685 -0
  114. package/lib/commands/handler.d.ts +27 -18
  115. package/lib/commands/handler.js +290 -164
  116. package/lib/commands/optionresolver.d.ts +13 -13
  117. package/lib/commands/optionresolver.js +23 -28
  118. package/lib/common/bot/watcher.d.ts +4 -33
  119. package/lib/common/bot/watcher.js +0 -109
  120. package/lib/common/index.d.ts +1 -0
  121. package/lib/common/index.js +1 -0
  122. package/lib/common/it/colors.js +48 -49
  123. package/lib/common/it/formatter.d.ts +32 -0
  124. package/lib/common/it/formatter.js +42 -0
  125. package/lib/common/it/logger.d.ts +0 -1
  126. package/lib/common/it/logger.js +3 -3
  127. package/lib/common/it/utils.d.ts +15 -2
  128. package/lib/common/it/utils.js +78 -17
  129. package/lib/common/shorters/application.d.ts +56 -0
  130. package/lib/common/shorters/application.js +81 -0
  131. package/lib/common/shorters/bans.d.ts +4 -5
  132. package/lib/common/shorters/bans.js +3 -3
  133. package/lib/common/shorters/channels.d.ts +7 -6
  134. package/lib/common/shorters/channels.js +19 -15
  135. package/lib/common/shorters/emojis.d.ts +5 -6
  136. package/lib/common/shorters/emojis.js +5 -5
  137. package/lib/common/shorters/guilds.d.ts +18 -16
  138. package/lib/common/shorters/guilds.js +31 -26
  139. package/lib/common/shorters/interaction.d.ts +6 -6
  140. package/lib/common/shorters/interaction.js +3 -2
  141. package/lib/common/shorters/members.d.ts +29 -12
  142. package/lib/common/shorters/members.js +55 -16
  143. package/lib/common/shorters/messages.d.ts +7 -8
  144. package/lib/common/shorters/messages.js +8 -7
  145. package/lib/common/shorters/reactions.d.ts +3 -3
  146. package/lib/common/shorters/reactions.js +11 -11
  147. package/lib/common/shorters/roles.d.ts +9 -7
  148. package/lib/common/shorters/roles.js +26 -7
  149. package/lib/common/shorters/templates.d.ts +7 -8
  150. package/lib/common/shorters/templates.js +7 -7
  151. package/lib/common/shorters/threads.d.ts +6 -7
  152. package/lib/common/shorters/threads.js +6 -9
  153. package/lib/common/shorters/users.d.ts +4 -4
  154. package/lib/common/shorters/users.js +8 -4
  155. package/lib/common/shorters/webhook.d.ts +10 -10
  156. package/lib/common/shorters/webhook.js +10 -9
  157. package/lib/common/types/resolvables.d.ts +2 -2
  158. package/lib/common/types/util.d.ts +3 -1
  159. package/lib/common/types/write.d.ts +1 -1
  160. package/lib/components/ActionRow.d.ts +1 -1
  161. package/lib/components/BaseComponent.d.ts +1 -1
  162. package/lib/components/BaseComponent.js +1 -1
  163. package/lib/components/BaseSelectMenuComponent.d.ts +1 -1
  164. package/lib/components/ButtonComponent.d.ts +17 -7
  165. package/lib/components/ButtonComponent.js +19 -2
  166. package/lib/components/ChannelSelectMenuComponent.d.ts +3 -3
  167. package/lib/components/MentionableSelectMenuComponent.d.ts +2 -2
  168. package/lib/components/RoleSelectMenuComponent.d.ts +2 -2
  169. package/lib/components/StringSelectMenuComponent.d.ts +2 -2
  170. package/lib/components/TextInputComponent.d.ts +2 -2
  171. package/lib/components/UserSelectMenuComponent.d.ts +2 -2
  172. package/lib/components/componentcommand.js +2 -2
  173. package/lib/components/componentcontext.d.ts +10 -9
  174. package/lib/components/componentcontext.js +8 -8
  175. package/lib/components/handler.d.ts +15 -14
  176. package/lib/components/handler.js +89 -93
  177. package/lib/components/index.d.ts +3 -3
  178. package/lib/components/index.js +12 -10
  179. package/lib/components/modalcontext.d.ts +12 -11
  180. package/lib/components/modalcontext.js +2 -2
  181. package/lib/deps/mixer.d.ts +8 -0
  182. package/lib/deps/mixer.js +66 -0
  183. package/lib/events/handler.d.ts +35 -13
  184. package/lib/events/handler.js +58 -25
  185. package/lib/events/hooks/application_command.d.ts +2 -2
  186. package/lib/events/hooks/auto_moderation.d.ts +6 -7
  187. package/lib/events/hooks/auto_moderation.js +4 -4
  188. package/lib/events/hooks/channel.d.ts +2 -2
  189. package/lib/events/hooks/channel.js +4 -7
  190. package/lib/events/hooks/custom.d.ts +3 -3
  191. package/lib/events/hooks/dispatch.d.ts +3 -4
  192. package/lib/events/hooks/dispatch.js +2 -2
  193. package/lib/events/hooks/entitlement.d.ts +5 -37
  194. package/lib/events/hooks/entitlement.js +7 -7
  195. package/lib/events/hooks/guild.d.ts +125 -125
  196. package/lib/events/hooks/guild.js +13 -15
  197. package/lib/events/hooks/integration.d.ts +27 -28
  198. package/lib/events/hooks/integration.js +3 -3
  199. package/lib/events/hooks/interactions.d.ts +2 -2
  200. package/lib/events/hooks/invite.d.ts +18 -17
  201. package/lib/events/hooks/message.d.ts +69 -54
  202. package/lib/events/hooks/message.js +4 -8
  203. package/lib/events/hooks/presence.d.ts +17 -16
  204. package/lib/events/hooks/stage.d.ts +4 -4
  205. package/lib/events/hooks/thread.d.ts +132 -63
  206. package/lib/events/hooks/thread.js +4 -4
  207. package/lib/events/hooks/typing.d.ts +28 -6
  208. package/lib/events/hooks/typing.js +2 -2
  209. package/lib/events/hooks/user.d.ts +3 -3
  210. package/lib/events/hooks/user.js +2 -2
  211. package/lib/events/hooks/voice.d.ts +28 -3
  212. package/lib/events/hooks/voice.js +8 -4
  213. package/lib/events/hooks/webhook.d.ts +1 -1
  214. package/lib/index.d.ts +5 -14
  215. package/lib/index.js +7 -12
  216. package/lib/langs/handler.d.ts +14 -10
  217. package/lib/langs/handler.js +40 -9
  218. package/lib/structures/AutoModerationRule.d.ts +4 -4
  219. package/lib/structures/AutoModerationRule.js +1 -2
  220. package/lib/structures/ClientUser.d.ts +1 -1
  221. package/lib/structures/Entitlement.d.ts +10 -0
  222. package/lib/structures/Entitlement.js +16 -0
  223. package/lib/structures/Guild.d.ts +33 -34
  224. package/lib/structures/Guild.js +5 -2
  225. package/lib/structures/GuildBan.d.ts +6 -6
  226. package/lib/structures/GuildBan.js +2 -1
  227. package/lib/structures/GuildEmoji.d.ts +4 -4
  228. package/lib/structures/GuildEmoji.js +3 -2
  229. package/lib/structures/GuildMember.d.ts +20 -17
  230. package/lib/structures/GuildMember.js +18 -8
  231. package/lib/structures/GuildPreview.d.ts +1 -1
  232. package/lib/structures/GuildRole.d.ts +5 -3
  233. package/lib/structures/GuildRole.js +8 -1
  234. package/lib/structures/GuildTemplate.d.ts +2 -2
  235. package/lib/structures/GuildTemplate.js +1 -1
  236. package/lib/structures/Interaction.d.ts +53 -36
  237. package/lib/structures/Interaction.js +127 -91
  238. package/lib/structures/Message.d.ts +29 -30
  239. package/lib/structures/Message.js +8 -9
  240. package/lib/structures/Poll.d.ts +4 -3
  241. package/lib/structures/Poll.js +6 -2
  242. package/lib/structures/Sticker.d.ts +7 -7
  243. package/lib/structures/Sticker.js +7 -7
  244. package/lib/structures/User.d.ts +5 -4
  245. package/lib/structures/User.js +2 -1
  246. package/lib/structures/VoiceState.d.ts +15 -11
  247. package/lib/structures/VoiceState.js +35 -17
  248. package/lib/structures/Webhook.d.ts +6 -7
  249. package/lib/structures/Webhook.js +6 -7
  250. package/lib/structures/channels.d.ts +11 -10
  251. package/lib/structures/channels.js +70 -65
  252. package/lib/structures/extra/BaseGuild.d.ts +1 -1
  253. package/lib/structures/extra/BaseGuild.js +3 -3
  254. package/lib/structures/extra/BitField.d.ts +1 -1
  255. package/lib/structures/extra/BitField.js +3 -2
  256. package/lib/structures/extra/DiscordBase.js +2 -2
  257. package/lib/structures/extra/Permissions.d.ts +3 -1
  258. package/lib/structures/extra/Permissions.js +8 -3
  259. package/lib/types/gateway.d.ts +1537 -0
  260. package/lib/types/gateway.js +4 -0
  261. package/lib/types/index.d.ts +9 -1
  262. package/lib/types/index.js +28 -1
  263. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.d.ts +5 -0
  264. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.js +2 -0
  265. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.d.ts +22 -0
  266. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.js +2 -0
  267. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.d.ts +4 -0
  268. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.js +2 -0
  269. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.d.ts +7 -0
  270. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.js +2 -0
  271. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.d.ts +17 -0
  272. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.js +2 -0
  273. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.d.ts +5 -0
  274. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.js +2 -0
  275. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.d.ts +17 -0
  276. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.js +2 -0
  277. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.d.ts +5 -0
  278. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.js +2 -0
  279. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.d.ts +25 -0
  280. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.js +20 -0
  281. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.d.ts +17 -0
  282. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.js +2 -0
  283. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.d.ts +11 -0
  284. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.js +2 -0
  285. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts +11 -0
  286. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.js +2 -0
  287. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.d.ts +5 -0
  288. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.js +2 -0
  289. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.d.ts +60 -0
  290. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.js +29 -0
  291. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.d.ts +65 -0
  292. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.js +2 -0
  293. package/lib/types/payloads/_interactions/_applicationCommands/internals.d.ts +8 -0
  294. package/lib/types/payloads/_interactions/_applicationCommands/internals.js +2 -0
  295. package/lib/types/payloads/_interactions/_applicationCommands/permissions.d.ts +54 -0
  296. package/lib/types/payloads/_interactions/_applicationCommands/permissions.js +20 -0
  297. package/lib/types/payloads/_interactions/applicationCommands.d.ts +153 -0
  298. package/lib/types/payloads/_interactions/applicationCommands.js +61 -0
  299. package/lib/types/payloads/_interactions/autocomplete.d.ts +10 -0
  300. package/lib/types/payloads/_interactions/autocomplete.js +2 -0
  301. package/lib/types/payloads/_interactions/base.d.ts +197 -0
  302. package/lib/types/payloads/_interactions/base.js +2 -0
  303. package/lib/types/payloads/_interactions/messageComponents.d.ts +41 -0
  304. package/lib/types/payloads/_interactions/messageComponents.js +2 -0
  305. package/lib/types/payloads/_interactions/modalSubmit.d.ts +35 -0
  306. package/lib/types/payloads/_interactions/modalSubmit.js +2 -0
  307. package/lib/types/payloads/_interactions/ping.d.ts +3 -0
  308. package/lib/types/payloads/_interactions/ping.js +2 -0
  309. package/lib/types/payloads/_interactions/responses.d.ts +112 -0
  310. package/lib/types/payloads/_interactions/responses.js +54 -0
  311. package/lib/types/payloads/application.d.ts +292 -0
  312. package/lib/types/payloads/application.js +117 -0
  313. package/lib/types/payloads/auditLog.d.ts +644 -0
  314. package/lib/types/payloads/auditLog.js +80 -0
  315. package/lib/types/payloads/autoModeration.d.ts +219 -0
  316. package/lib/types/payloads/autoModeration.js +87 -0
  317. package/lib/types/payloads/channel.d.ts +1708 -0
  318. package/lib/types/payloads/channel.js +372 -0
  319. package/lib/types/payloads/emoji.d.ts +48 -0
  320. package/lib/types/payloads/emoji.js +5 -0
  321. package/lib/types/payloads/gateway.d.ts +373 -0
  322. package/lib/types/payloads/gateway.js +82 -0
  323. package/lib/types/payloads/guild.d.ts +1060 -0
  324. package/lib/types/payloads/guild.js +324 -0
  325. package/lib/types/payloads/guildScheduledEvent.d.ts +138 -0
  326. package/lib/types/payloads/guildScheduledEvent.js +32 -0
  327. package/lib/types/payloads/index.d.ts +64 -0
  328. package/lib/types/payloads/index.js +37 -0
  329. package/lib/types/payloads/interactions.d.ts +24 -0
  330. package/lib/types/payloads/interactions.js +23 -0
  331. package/lib/types/payloads/invite.d.ts +121 -0
  332. package/lib/types/payloads/invite.js +23 -0
  333. package/lib/types/payloads/monetization.d.ts +150 -0
  334. package/lib/types/payloads/monetization.js +79 -0
  335. package/lib/types/payloads/oauth2.d.ts +131 -0
  336. package/lib/types/payloads/oauth2.js +135 -0
  337. package/lib/types/payloads/permissions.d.ts +97 -0
  338. package/lib/types/payloads/permissions.js +16 -0
  339. package/lib/types/payloads/poll.d.ts +104 -0
  340. package/lib/types/payloads/poll.js +16 -0
  341. package/lib/types/payloads/stageInstance.d.ts +77 -0
  342. package/lib/types/payloads/stageInstance.js +19 -0
  343. package/lib/types/payloads/sticker.d.ts +123 -0
  344. package/lib/types/payloads/sticker.js +30 -0
  345. package/lib/types/payloads/teams.d.ts +78 -0
  346. package/lib/types/payloads/teams.js +23 -0
  347. package/lib/types/payloads/template.d.ts +62 -0
  348. package/lib/types/payloads/template.js +5 -0
  349. package/lib/types/payloads/user.d.ts +337 -0
  350. package/lib/types/payloads/user.js +167 -0
  351. package/lib/types/payloads/voice.d.ts +89 -0
  352. package/lib/types/payloads/voice.js +5 -0
  353. package/lib/types/payloads/webhook.d.ts +76 -0
  354. package/lib/types/payloads/webhook.js +21 -0
  355. package/lib/types/rest/application.d.ts +57 -0
  356. package/lib/types/rest/application.js +2 -0
  357. package/lib/types/rest/auditLog.d.ts +30 -0
  358. package/lib/types/rest/auditLog.js +2 -0
  359. package/lib/types/rest/autoModeration.d.ts +66 -0
  360. package/lib/types/rest/autoModeration.js +2 -0
  361. package/lib/types/rest/channel.d.ts +712 -0
  362. package/lib/types/rest/channel.js +11 -0
  363. package/lib/types/rest/emoji.d.ts +54 -0
  364. package/lib/types/rest/emoji.js +2 -0
  365. package/lib/types/rest/gateway.d.ts +9 -0
  366. package/lib/types/rest/gateway.js +2 -0
  367. package/lib/types/rest/guild.d.ts +865 -0
  368. package/lib/types/rest/guild.js +2 -0
  369. package/lib/types/rest/guildScheduledEvent.d.ts +126 -0
  370. package/lib/types/rest/guildScheduledEvent.js +2 -0
  371. package/lib/types/rest/index.d.ts +296 -0
  372. package/lib/types/rest/index.js +292 -0
  373. package/lib/types/rest/interactions.d.ts +194 -0
  374. package/lib/types/rest/interactions.js +2 -0
  375. package/lib/types/rest/invite.d.ts +24 -0
  376. package/lib/types/rest/invite.js +2 -0
  377. package/lib/types/rest/monetization.d.ts +82 -0
  378. package/lib/types/rest/monetization.js +11 -0
  379. package/lib/types/rest/oauth2.d.ts +172 -0
  380. package/lib/types/rest/oauth2.js +2 -0
  381. package/lib/types/rest/poll.d.ts +44 -0
  382. package/lib/types/rest/poll.js +2 -0
  383. package/lib/types/rest/stageInstance.d.ts +58 -0
  384. package/lib/types/rest/stageInstance.js +2 -0
  385. package/lib/types/rest/sticker.d.ts +77 -0
  386. package/lib/types/rest/sticker.js +2 -0
  387. package/lib/types/rest/template.d.ts +62 -0
  388. package/lib/types/rest/template.js +2 -0
  389. package/lib/types/rest/user.d.ts +120 -0
  390. package/lib/types/rest/user.js +2 -0
  391. package/lib/types/rest/voice.d.ts +17 -0
  392. package/lib/types/rest/voice.js +2 -0
  393. package/lib/types/rest/webhook.d.ts +250 -0
  394. package/lib/types/rest/webhook.js +2 -0
  395. package/lib/types/utils/index.d.ts +797 -0
  396. package/lib/types/utils/index.js +799 -0
  397. package/lib/websocket/SharedTypes.d.ts +4 -3
  398. package/lib/websocket/SharedTypes.js +1 -1
  399. package/lib/websocket/constants/index.d.ts +0 -1
  400. package/lib/websocket/discord/basesocket.d.ts +7 -7
  401. package/lib/websocket/discord/basesocket.js +34 -22
  402. package/lib/websocket/discord/events/memberUpdate.d.ts +1 -6
  403. package/lib/websocket/discord/events/memberUpdate.js +2 -1
  404. package/lib/websocket/discord/events/presenceUpdate.d.ts +5 -18
  405. package/lib/websocket/discord/events/presenceUpdate.js +5 -6
  406. package/lib/websocket/discord/shard.d.ts +8 -8
  407. package/lib/websocket/discord/shard.js +59 -47
  408. package/lib/websocket/discord/sharder.d.ts +6 -5
  409. package/lib/websocket/discord/sharder.js +11 -10
  410. package/lib/websocket/discord/shared.d.ts +13 -5
  411. package/lib/websocket/discord/socket/custom.d.ts +52 -0
  412. package/lib/websocket/discord/socket/custom.js +283 -0
  413. package/lib/websocket/discord/worker.d.ts +5 -10
  414. package/lib/websocket/discord/workermanager.d.ts +8 -15
  415. package/lib/websocket/discord/workermanager.js +35 -39
  416. package/lib/websocket/structures/index.d.ts +0 -1
  417. package/lib/websocket/structures/index.js +1 -1
  418. package/lib/websocket/structures/timeout.d.ts +0 -1
  419. package/package.json +65 -74
  420. package/lib/cache/adapters/redis.d.ts +0 -37
  421. package/lib/cache/adapters/redis.js +0 -218
  422. package/lib/client/oninteractioncreate.d.ts +0 -4
  423. package/lib/client/oninteractioncreate.js +0 -198
  424. package/lib/client/onmessagecreate.d.ts +0 -13
  425. package/lib/client/onmessagecreate.js +0 -410
  426. package/lib/structures/extra/functions.d.ts +0 -12
  427. package/lib/structures/extra/functions.js +0 -70
@@ -1,9 +1,9 @@
1
- import type { APIPartialEmoji } from 'discord-api-types/v10';
1
+ import type { APIGuildMember, APIPartialEmoji } from '../../types';
2
2
  import type { EmbedColors } from '..';
3
3
  import type { Attachment, AttachmentDataType, AttachmentResolvable } from '../../builders';
4
4
  import type { GuildMember } from '../../structures';
5
5
  export type EmojiResolvable = string | Partial<APIPartialEmoji> | `<${string | undefined}:${string}:${string}>`;
6
- export type GuildMemberResolvable = string | Partial<GuildMember>;
6
+ export type GuildMemberResolvable = string | Partial<GuildMember> | APIGuildMember;
7
7
  export type ColorResolvable = `#${string}` | number | keyof typeof EmbedColors | 'Random' | [number, number, number];
8
8
  export type ImageResolvable = {
9
9
  data: AttachmentResolvable;
@@ -1,4 +1,4 @@
1
- import type { GatewayIntentBits, PermissionFlagsBits } from 'discord-api-types/v10';
1
+ import type { GatewayIntentBits, PermissionFlagsBits } from '../../types';
2
2
  export type ToClass<T, This> = new (...args: any[]) => {
3
3
  [K in keyof T]: T[K] extends (...args: any[]) => any ? ReturnType<T[K]> extends Promise<T> ? (...args: Parameters<T[K]>) => Promise<This> : ReturnType<T[K]> extends T ? (...args: Parameters<T[K]>) => This : T[K] : T[K];
4
4
  };
@@ -37,6 +37,8 @@ export type When<T extends boolean, A, B = never> = T extends true ? A : B;
37
37
  export type AuxIsStrictlyUndefined<T> = T extends undefined | null | never | void ? true : false;
38
38
  export type IsStrictlyUndefined<T> = AuxIsStrictlyUndefined<T> extends true ? true : AuxIsStrictlyUndefined<T> extends false ? false : false;
39
39
  export type If<T extends boolean, A, B = null> = T extends true ? A : B extends null ? A | null : B;
40
+ export type NulleableCoalising<A, B> = NonFalsy<A> extends never ? B : A;
41
+ export type TupleOr<A, T> = ValueOf<A> extends never ? A : TupleOr<ArrayFirsElement<T>, Tail<T>>;
40
42
  export type PickPartial<T, K extends keyof T> = {
41
43
  [P in keyof T]?: T[P] | undefined;
42
44
  } & {
@@ -1,4 +1,4 @@
1
- import type { APIActionRowComponent, APIEmbed, APIInteractionResponseCallbackData, APIInteractionResponseChannelMessageWithSource, APIMessageActionRowComponent, APIModalInteractionResponse, RESTAPIPollCreate, RESTPatchAPIChannelMessageJSONBody, RESTPatchAPIWebhookWithTokenMessageJSONBody, RESTPostAPIChannelMessageJSONBody, RESTPostAPIWebhookWithTokenJSONBody } from 'discord-api-types/v10';
1
+ import type { APIActionRowComponent, APIEmbed, APIInteractionResponseCallbackData, APIInteractionResponseChannelMessageWithSource, APIMessageActionRowComponent, APIModalInteractionResponse, RESTAPIPollCreate, RESTPatchAPIChannelMessageJSONBody, RESTPatchAPIWebhookWithTokenMessageJSONBody, RESTPostAPIChannelMessageJSONBody, RESTPostAPIWebhookWithTokenJSONBody } from '../../types';
2
2
  import type { RawFile } from '../../api';
3
3
  import type { ActionRow, Attachment, AttachmentBuilder, BuilderComponents, Embed, Modal, PollBuilder } from '../../builders';
4
4
  import type { OmitInsert } from './util';
@@ -1,4 +1,4 @@
1
- import type { APIMessageActionRowComponent, ComponentType } from 'discord-api-types/v10';
1
+ import type { APIMessageActionRowComponent, ComponentType } from '../types';
2
2
  import { BaseComponent } from './BaseComponent';
3
3
  import type { ActionRowMessageComponents } from './index';
4
4
  export declare class MessageActionRowComponent<T extends ActionRowMessageComponents> extends BaseComponent<ComponentType.ActionRow> {
@@ -1,4 +1,4 @@
1
- import { type APIActionRowComponent, type APIActionRowComponentTypes, type APIButtonComponent, type APIChannelSelectComponent, type APIMentionableSelectComponent, type APIRoleSelectComponent, type APIStringSelectComponent, type APITextInputComponent, type APIUserSelectComponent, ComponentType } from 'discord-api-types/v10';
1
+ import { type APIActionRowComponent, type APIActionRowComponentTypes, type APIButtonComponent, type APIChannelSelectComponent, type APIMentionableSelectComponent, type APIRoleSelectComponent, type APIStringSelectComponent, type APITextInputComponent, type APIUserSelectComponent, ComponentType } from '../types';
2
2
  export declare class BaseComponent<T extends ComponentType> {
3
3
  data: APIComponentsMap[T];
4
4
  constructor(data: APIComponentsMap[T]);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseComponent = void 0;
4
- const v10_1 = require("discord-api-types/v10");
4
+ const types_1 = require("../types");
5
5
  const builders_1 = require("../builders");
6
6
  class BaseComponent {
7
7
  data;
@@ -1,4 +1,4 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseComponent } from './BaseComponent';
3
3
  export type APISelectMenuComponentTypes = ComponentType.ChannelSelect | ComponentType.MentionableSelect | ComponentType.RoleSelect | ComponentType.StringSelect | ComponentType.UserSelect;
4
4
  export declare class BaseSelectMenuComponent<T extends APISelectMenuComponentTypes> extends BaseComponent<T> {
@@ -1,19 +1,29 @@
1
- import type { ButtonStyle, ComponentType } from 'discord-api-types/v10';
2
- import { Button, type ButtonStylesForID } from '../builders';
1
+ import type { APIButtonComponentWithCustomId, APIButtonComponentWithSKUId, APIButtonComponentWithURL, ButtonStyle, ComponentType } from '../types';
2
+ import { Button } from '../builders';
3
3
  import { BaseComponent } from './BaseComponent';
4
4
  export declare class LinkButtonComponent extends BaseComponent<ComponentType.Button> {
5
+ data: APIButtonComponentWithURL;
5
6
  get style(): ButtonStyle.Link;
6
7
  get url(): string;
7
8
  get label(): string | undefined;
8
9
  get disabled(): boolean | undefined;
9
- get emoji(): import("discord-api-types/v10").APIMessageComponentEmoji | undefined;
10
- toBuilder(): Button<false>;
10
+ get emoji(): import("../types").APIMessageComponentEmoji | undefined;
11
+ toBuilder(): Button;
11
12
  }
12
13
  export type ButtonStyleExludeLink = Exclude<ButtonStyle, ButtonStyle.Link>;
13
14
  export declare class ButtonComponent extends BaseComponent<ComponentType.Button> {
14
- get style(): ButtonStylesForID;
15
+ data: APIButtonComponentWithCustomId;
16
+ get style(): ButtonStyle.Primary | ButtonStyle.Secondary | ButtonStyle.Success | ButtonStyle.Danger;
17
+ get customId(): string;
15
18
  get label(): string | undefined;
16
19
  get disabled(): boolean | undefined;
17
- get emoji(): import("discord-api-types/v10").APIMessageComponentEmoji | undefined;
18
- toBuilder(): Button<true>;
20
+ get emoji(): import("../types").APIMessageComponentEmoji | undefined;
21
+ toBuilder(): Button;
22
+ }
23
+ export declare class SKUButtonComponent extends BaseComponent<ComponentType.Button> {
24
+ data: APIButtonComponentWithSKUId;
25
+ get style(): ButtonStyle.Premium;
26
+ get skuId(): string;
27
+ get disabled(): boolean | undefined;
28
+ toBuilder(): Button;
19
29
  }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ButtonComponent = exports.LinkButtonComponent = void 0;
3
+ exports.SKUButtonComponent = exports.ButtonComponent = exports.LinkButtonComponent = void 0;
4
4
  const builders_1 = require("../builders");
5
5
  const BaseComponent_1 = require("./BaseComponent");
6
6
  class LinkButtonComponent extends BaseComponent_1.BaseComponent {
@@ -8,7 +8,6 @@ class LinkButtonComponent extends BaseComponent_1.BaseComponent {
8
8
  return this.data.style;
9
9
  }
10
10
  get url() {
11
- // @ts-expect-error
12
11
  return this.data.url;
13
12
  }
14
13
  get label() {
@@ -29,6 +28,9 @@ class ButtonComponent extends BaseComponent_1.BaseComponent {
29
28
  get style() {
30
29
  return this.data.style;
31
30
  }
31
+ get customId() {
32
+ return this.data.custom_id;
33
+ }
32
34
  get label() {
33
35
  return this.data.label;
34
36
  }
@@ -43,3 +45,18 @@ class ButtonComponent extends BaseComponent_1.BaseComponent {
43
45
  }
44
46
  }
45
47
  exports.ButtonComponent = ButtonComponent;
48
+ class SKUButtonComponent extends BaseComponent_1.BaseComponent {
49
+ get style() {
50
+ return this.data.style;
51
+ }
52
+ get skuId() {
53
+ return this.data.sku_id;
54
+ }
55
+ get disabled() {
56
+ return this.data.disabled;
57
+ }
58
+ toBuilder() {
59
+ return new builders_1.Button(this.data);
60
+ }
61
+ }
62
+ exports.SKUButtonComponent = SKUButtonComponent;
@@ -1,6 +1,6 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseSelectMenuComponent } from './BaseSelectMenuComponent';
3
3
  export declare class ChannelSelectMenuComponent extends BaseSelectMenuComponent<ComponentType.ChannelSelect> {
4
- get channelsTypes(): import("discord-api-types/v10").ChannelType[] | undefined;
5
- get defaultValues(): import("discord-api-types/v10").APISelectMenuDefaultValue<import("discord-api-types/v10").SelectMenuDefaultValueType.Channel>[] | undefined;
4
+ get channelsTypes(): import("../types").ChannelType[] | undefined;
5
+ get defaultValues(): import("../types").APISelectMenuDefaultValue<import("../types").SelectMenuDefaultValueType.Channel>[] | undefined;
6
6
  }
@@ -1,5 +1,5 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseSelectMenuComponent } from './BaseSelectMenuComponent';
3
3
  export declare class MentionableSelectMenuComponent extends BaseSelectMenuComponent<ComponentType.MentionableSelect> {
4
- get defaultValues(): import("discord-api-types/v10").APISelectMenuDefaultValue<import("discord-api-types/v10").SelectMenuDefaultValueType.Role | import("discord-api-types/v10").SelectMenuDefaultValueType.User>[] | undefined;
4
+ get defaultValues(): import("../types").APISelectMenuDefaultValue<import("../types").SelectMenuDefaultValueType.Role | import("../types").SelectMenuDefaultValueType.User>[] | undefined;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseSelectMenuComponent } from './BaseSelectMenuComponent';
3
3
  export declare class RoleSelectMenuComponent extends BaseSelectMenuComponent<ComponentType.RoleSelect> {
4
- get defaultValues(): import("discord-api-types/v10").APISelectMenuDefaultValue<import("discord-api-types/v10").SelectMenuDefaultValueType.Role>[] | undefined;
4
+ get defaultValues(): import("../types").APISelectMenuDefaultValue<import("../types").SelectMenuDefaultValueType.Role>[] | undefined;
5
5
  }
@@ -1,5 +1,5 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseSelectMenuComponent } from './BaseSelectMenuComponent';
3
3
  export declare class StringSelectMenuComponent extends BaseSelectMenuComponent<ComponentType.StringSelect> {
4
- get options(): import("discord-api-types/v10").APISelectMenuOption[];
4
+ get options(): import("../types").APISelectMenuOption[];
5
5
  }
@@ -1,9 +1,9 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseComponent } from './BaseComponent';
3
3
  export declare class TextInputComponent extends BaseComponent<ComponentType.TextInput> {
4
4
  get customId(): string;
5
5
  get value(): string | undefined;
6
- get style(): import("discord-api-types/v10").TextInputStyle;
6
+ get style(): import("../types").TextInputStyle;
7
7
  get label(): string;
8
8
  get max(): number | undefined;
9
9
  get min(): number | undefined;
@@ -1,5 +1,5 @@
1
- import type { ComponentType } from 'discord-api-types/v10';
1
+ import type { ComponentType } from '../types';
2
2
  import { BaseSelectMenuComponent } from './BaseSelectMenuComponent';
3
3
  export declare class UserSelectMenuComponent extends BaseSelectMenuComponent<ComponentType.UserSelect> {
4
- get defaultValues(): import("discord-api-types/v10").APISelectMenuDefaultValue<import("discord-api-types/v10").SelectMenuDefaultValueType.User>[] | undefined;
4
+ get defaultValues(): import("../types").APISelectMenuDefaultValue<import("../types").SelectMenuDefaultValueType.User>[] | undefined;
5
5
  }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ComponentCommand = exports.InteractionCommandType = void 0;
4
- const v10_1 = require("discord-api-types/v10");
4
+ const types_1 = require("../types");
5
5
  exports.InteractionCommandType = {
6
6
  COMPONENT: 0,
7
7
  MODAL: 1,
@@ -11,7 +11,7 @@ class ComponentCommand {
11
11
  middlewares = [];
12
12
  props;
13
13
  get cType() {
14
- return v10_1.ComponentType[this.componentType];
14
+ return types_1.ComponentType[this.componentType];
15
15
  }
16
16
  }
17
17
  exports.ComponentCommand = ComponentCommand;
@@ -1,7 +1,8 @@
1
- import type { AllChannels, ButtonInteraction, ChannelSelectMenuInteraction, ComponentCommand, Guild, GuildMember, MentionableSelectMenuInteraction, Message, ReturnCache, RoleSelectMenuInteraction, StringSelectMenuInteraction, UserSelectMenuInteraction, WebhookMessage } from '..';
1
+ import type { AllChannels, ButtonInteraction, ChannelSelectMenuInteraction, ComponentCommand, MentionableSelectMenuInteraction, ReturnCache, RoleSelectMenuInteraction, StringSelectMenuInteraction, UserSelectMenuInteraction } from '..';
2
2
  import type { CommandMetadata, ExtendContext, GlobalMetadata, RegisteredMiddlewares, UsingClient } from '../commands';
3
3
  import { BaseContext } from '../commands/basecontext';
4
4
  import type { ComponentInteractionMessageUpdate, InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, ModalCreateBodyRequest, UnionToTuple, When } from '../common';
5
+ import type { GuildMemberStructure, GuildStructure, MessageStructure, WebhookMessageStructure } from '../client/transformers';
5
6
  export interface ComponentContext<Type extends keyof ContextComponentCommandInteractionMap = keyof ContextComponentCommandInteractionMap> extends BaseContext, ExtendContext {
6
7
  }
7
8
  /**
@@ -24,7 +25,7 @@ export declare class ComponentContext<Type extends keyof ContextComponentCommand
24
25
  * Gets the language object for the interaction's locale.
25
26
  */
26
27
  get t(): import("..").__InternalParseLocale<import("..").DefaultLocale> & {
27
- get(locale?: string | undefined): import("..").DefaultLocale;
28
+ get(locale?: string): import("..").DefaultLocale;
28
29
  };
29
30
  /**
30
31
  * Gets the custom ID of the interaction.
@@ -35,7 +36,7 @@ export declare class ComponentContext<Type extends keyof ContextComponentCommand
35
36
  * @param body - The body of the response.
36
37
  * @param fetchReply - Whether to fetch the reply or not.
37
38
  */
38
- write<FR extends boolean = false>(body: InteractionCreateBodyRequest, fetchReply?: FR): Promise<When<FR, WebhookMessage, void>>;
39
+ write<FR extends boolean = false>(body: InteractionCreateBodyRequest, fetchReply?: FR): Promise<When<FR, import("..").WebhookMessage, void>>;
39
40
  /**
40
41
  * Defers the reply to the interaction.
41
42
  * @param ephemeral - Whether the reply should be ephemeral or not.
@@ -45,7 +46,7 @@ export declare class ComponentContext<Type extends keyof ContextComponentCommand
45
46
  * Edits the response of the interaction.
46
47
  * @param body - The updated body of the response.
47
48
  */
48
- editResponse(body: InteractionMessageUpdateBodyRequest): Promise<WebhookMessage>;
49
+ editResponse(body: InteractionMessageUpdateBodyRequest): Promise<import("..").WebhookMessage>;
49
50
  /**
50
51
  * Updates the interaction with new data.
51
52
  * @param body - The updated body of the interaction.
@@ -56,7 +57,7 @@ export declare class ComponentContext<Type extends keyof ContextComponentCommand
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 ComponentContext<Type extends keyof ContextComponentCommand
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.ComponentContext = 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 ComponentContext 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.
@@ -135,22 +135,22 @@ class ComponentContext extends basecontext_1.BaseContext {
135
135
  return true;
136
136
  }
137
137
  isButton() {
138
- return this.interaction.data.componentType === v10_1.ComponentType.Button;
138
+ return this.interaction.data.componentType === types_1.ComponentType.Button;
139
139
  }
140
140
  isChannelSelectMenu() {
141
- return this.interaction.componentType === v10_1.ComponentType.ChannelSelect;
141
+ return this.interaction.componentType === types_1.ComponentType.ChannelSelect;
142
142
  }
143
143
  isRoleSelectMenu() {
144
- return this.interaction.componentType === v10_1.ComponentType.RoleSelect;
144
+ return this.interaction.componentType === types_1.ComponentType.RoleSelect;
145
145
  }
146
146
  isMentionableSelectMenu() {
147
- return this.interaction.componentType === v10_1.ComponentType.MentionableSelect;
147
+ return this.interaction.componentType === types_1.ComponentType.MentionableSelect;
148
148
  }
149
149
  isUserSelectMenu() {
150
- return this.interaction.componentType === v10_1.ComponentType.UserSelect;
150
+ return this.interaction.componentType === types_1.ComponentType.UserSelect;
151
151
  }
152
152
  isStringSelectMenu() {
153
- return this.interaction.componentType === v10_1.ComponentType.StringSelect;
153
+ return this.interaction.componentType === types_1.ComponentType.StringSelect;
154
154
  }
155
155
  }
156
156
  exports.ComponentContext = ComponentContext;
@@ -1,7 +1,7 @@
1
- /// <reference types="node" />
2
1
  import type { ComponentCallback, ListenerOptions, ModalSubmitCallback } from '../builders/types';
3
2
  import { LimitedCollection } from '../collection';
4
3
  import { type UsingClient } from '../commands';
4
+ import type { FileLoaded } from '../commands/handler';
5
5
  import { BaseHandler, type Logger, type OnFailCallback } from '../common';
6
6
  import type { ComponentInteraction, ModalSubmitInteraction, StringSelectMenuInteraction } from '../structures';
7
7
  import { ComponentCommand } from './componentcommand';
@@ -19,16 +19,18 @@ type COMPONENTS = {
19
19
  timeout?: NodeJS.Timeout;
20
20
  __run: (customId: string | string[] | RegExp, callback: ComponentCallback) => any;
21
21
  };
22
+ export type CollectorInteraction = ComponentInteraction | StringSelectMenuInteraction;
23
+ export type ComponentCommands = ComponentCommand | ModalCommand;
22
24
  export declare class ComponentHandler extends BaseHandler {
23
25
  protected client: UsingClient;
24
26
  onFail: OnFailCallback;
25
27
  readonly values: Map<string, COMPONENTS>;
26
28
  readonly modals: LimitedCollection<string, ModalSubmitCallback>;
27
- readonly commands: (ComponentCommand | ModalCommand)[];
29
+ readonly commands: ComponentCommands[];
28
30
  protected filter: (path: string) => boolean;
29
31
  constructor(logger: Logger, client: UsingClient);
30
32
  createComponentCollector(messageId: string, options?: ListenerOptions): {
31
- run<T extends ComponentInteraction | StringSelectMenuInteraction = ComponentInteraction | StringSelectMenuInteraction>(customId: string | string[] | RegExp, callback: ComponentCallback<T>): any;
33
+ run<T extends CollectorInteraction = CollectorInteraction>(customId: string | string[] | RegExp, callback: ComponentCallback<T>): any;
32
34
  stop(reason?: string): any;
33
35
  };
34
36
  onComponent(id: string, interaction: ComponentInteraction): Promise<void>;
@@ -38,18 +40,17 @@ export declare class ComponentHandler extends BaseHandler {
38
40
  onModalSubmit(interaction: ModalSubmitInteraction): any;
39
41
  deleteValue(id: string, reason?: string): void;
40
42
  onMessageDelete(id: string): void;
41
- load(componentsDir: string, instances?: {
42
- new (): ModalCommand | ComponentCommand;
43
- }[]): Promise<void>;
43
+ stablishDefaults(component: ComponentCommands): void;
44
+ set(instances: (new () => ComponentCommands)[]): void;
45
+ load(componentsDir: string): Promise<void>;
44
46
  reload(path: string): Promise<any>;
45
47
  reloadAll(stopIfFail?: boolean): Promise<void>;
46
- executeComponent(context: ComponentContext): Promise<any>;
47
- executeModal(context: ModalContext): Promise<any>;
48
- setHandlers({ callback }: {
49
- callback: ComponentHandler['callback'];
50
- }): void;
51
- callback: (file: {
52
- new (): ModalCommand | ComponentCommand;
53
- }) => ModalCommand | ComponentCommand | false;
48
+ execute(i: ComponentCommands, context: ComponentContext | ModalContext): Promise<any>;
49
+ executeComponent(context: ComponentContext): Promise<void>;
50
+ executeModal(context: ModalContext): Promise<void>;
51
+ onFile(file: FileLoaded<new () => ComponentCommands>): (new () => ComponentCommands)[] | undefined;
52
+ callback(file: {
53
+ new (): ComponentCommands;
54
+ }): ComponentCommands | false;
54
55
  }
55
56
  export {};
@@ -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;