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
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Stickers = void 0;
4
4
  const common_1 = require("../../common");
5
- const structures_1 = require("../../structures");
6
5
  const guild_related_1 = require("./default/guild-related");
6
+ const transformers_1 = require("../../client/transformers");
7
7
  class Stickers extends guild_related_1.GuildRelatedResource {
8
8
  namespace = 'sticker';
9
9
  //@ts-expect-error
@@ -11,13 +11,22 @@ class Stickers extends guild_related_1.GuildRelatedResource {
11
11
  return true;
12
12
  }
13
13
  get(id) {
14
- return (0, common_1.fakePromise)(super.get(id)).then(rawSticker => rawSticker ? new structures_1.Sticker(this.client, rawSticker) : undefined);
14
+ return (0, common_1.fakePromise)(super.get(id)).then(rawSticker => rawSticker ? transformers_1.Transformers.Sticker(this.client, rawSticker) : undefined);
15
+ }
16
+ raw(id) {
17
+ return super.get(id);
15
18
  }
16
19
  bulk(ids) {
17
- return (0, common_1.fakePromise)(super.bulk(ids)).then(emojis => emojis.map(rawSticker => new structures_1.Sticker(this.client, rawSticker)));
20
+ return (0, common_1.fakePromise)(super.bulk(ids)).then(emojis => emojis.map(rawSticker => transformers_1.Transformers.Sticker(this.client, rawSticker)));
21
+ }
22
+ bulkRaw(ids) {
23
+ return super.bulk(ids);
18
24
  }
19
25
  values(guild) {
20
- return (0, common_1.fakePromise)(super.values(guild)).then(emojis => emojis.map(rawSticker => new structures_1.Sticker(this.client, rawSticker)));
26
+ return (0, common_1.fakePromise)(super.values(guild)).then(emojis => emojis.map(rawSticker => transformers_1.Transformers.Sticker(this.client, rawSticker)));
27
+ }
28
+ valuesRaw(guild) {
29
+ return super.values(guild);
21
30
  }
22
31
  }
23
32
  exports.Stickers = Stickers;
@@ -1,11 +1,14 @@
1
- import type { APIThreadChannel } from 'discord-api-types/v10';
1
+ import type { APIThreadChannel } from '../../types';
2
2
  import type { ReturnCache } from '../..';
3
- import { ThreadChannel } from '../../structures';
4
3
  import { GuildRelatedResource } from './default/guild-related';
5
- export declare class Threads extends GuildRelatedResource {
4
+ import { type ThreadChannelStructure } from '../../client/transformers';
5
+ export declare class Threads extends GuildRelatedResource<any, APIThreadChannel> {
6
6
  namespace: string;
7
7
  filter(data: APIThreadChannel, id: string, guild_id?: string): boolean;
8
- get(id: string): ReturnCache<ThreadChannel | undefined>;
9
- bulk(ids: string[]): ReturnCache<ThreadChannel[]>;
10
- values(guild: string): ReturnCache<ThreadChannel[]>;
8
+ get(id: string): ReturnCache<ThreadChannelStructure | undefined>;
9
+ raw(id: string): ReturnCache<APIThreadChannel | undefined>;
10
+ bulk(ids: string[]): ReturnCache<ThreadChannelStructure[]>;
11
+ bulkRaw(ids: string[]): ReturnCache<APIThreadChannel[]>;
12
+ values(guild: string): ReturnCache<ThreadChannelStructure[]>;
13
+ valuesRaw(guild: string): ReturnCache<APIThreadChannel[]>;
11
14
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Threads = void 0;
4
4
  const common_1 = require("../../common");
5
- const structures_1 = require("../../structures");
6
5
  const guild_related_1 = require("./default/guild-related");
6
+ const transformers_1 = require("../../client/transformers");
7
7
  class Threads extends guild_related_1.GuildRelatedResource {
8
8
  namespace = 'thread';
9
9
  //@ts-expect-error
@@ -11,13 +11,22 @@ class Threads extends guild_related_1.GuildRelatedResource {
11
11
  return true;
12
12
  }
13
13
  get(id) {
14
- return (0, common_1.fakePromise)(super.get(id)).then(rawThread => rawThread ? new structures_1.ThreadChannel(this.client, rawThread) : undefined);
14
+ return (0, common_1.fakePromise)(super.get(id)).then(rawThread => rawThread ? transformers_1.Transformers.ThreadChannel(this.client, rawThread) : undefined);
15
+ }
16
+ raw(id) {
17
+ return super.get(id);
15
18
  }
16
19
  bulk(ids) {
17
- return (0, common_1.fakePromise)(super.bulk(ids)).then(threads => threads.map(rawThread => new structures_1.ThreadChannel(this.client, rawThread)));
20
+ return (0, common_1.fakePromise)(super.bulk(ids)).then(threads => threads.map(rawThread => transformers_1.Transformers.ThreadChannel(this.client, rawThread)));
21
+ }
22
+ bulkRaw(ids) {
23
+ return super.bulk(ids);
18
24
  }
19
25
  values(guild) {
20
- return (0, common_1.fakePromise)(super.values(guild)).then(threads => threads.map(rawThread => new structures_1.ThreadChannel(this.client, rawThread)));
26
+ return (0, common_1.fakePromise)(super.values(guild)).then(threads => threads.map(rawThread => transformers_1.Transformers.ThreadChannel(this.client, rawThread)));
27
+ }
28
+ valuesRaw(guild) {
29
+ return super.values(guild);
21
30
  }
22
31
  }
23
32
  exports.Threads = Threads;
@@ -1,11 +1,14 @@
1
- import type { APIUser } from 'discord-api-types/v10';
1
+ import type { APIUser } from '../../types';
2
2
  import type { ReturnCache } from '../..';
3
- import { User } from '../../structures';
4
3
  import { BaseResource } from './default/base';
5
- export declare class Users extends BaseResource {
4
+ import { type UserStructure } from '../../client/transformers';
5
+ export declare class Users extends BaseResource<any, APIUser> {
6
6
  namespace: string;
7
7
  filter(data: APIUser, id: string): boolean;
8
- get(id: string): ReturnCache<User | undefined>;
9
- bulk(ids: string[]): ReturnCache<User[]>;
10
- values(): ReturnCache<User[]>;
8
+ get(id: string): ReturnCache<UserStructure | undefined>;
9
+ raw(id: string): ReturnCache<APIUser | undefined>;
10
+ bulk(ids: string[]): ReturnCache<UserStructure[]>;
11
+ bulkRaw(ids: string[]): ReturnCache<APIUser[]>;
12
+ values(): ReturnCache<UserStructure[]>;
13
+ valuesRaw(): ReturnCache<APIUser[]>;
11
14
  }
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Users = void 0;
4
4
  const common_1 = require("../../common");
5
- const structures_1 = require("../../structures");
6
5
  const base_1 = require("./default/base");
6
+ const transformers_1 = require("../../client/transformers");
7
7
  class Users extends base_1.BaseResource {
8
8
  namespace = 'user';
9
9
  //@ts-expect-error
@@ -11,13 +11,22 @@ class Users extends base_1.BaseResource {
11
11
  return true;
12
12
  }
13
13
  get(id) {
14
- return (0, common_1.fakePromise)(super.get(id)).then(rawUser => (rawUser ? new structures_1.User(this.client, rawUser) : undefined));
14
+ return (0, common_1.fakePromise)(super.get(id)).then(rawUser => (rawUser ? transformers_1.Transformers.User(this.client, rawUser) : undefined));
15
+ }
16
+ raw(id) {
17
+ return super.get(id);
15
18
  }
16
19
  bulk(ids) {
17
- return (0, common_1.fakePromise)(super.bulk(ids)).then(users => users.map(rawUser => new structures_1.User(this.client, rawUser)));
20
+ return (0, common_1.fakePromise)(super.bulk(ids)).then(users => users.map(rawUser => transformers_1.Transformers.User(this.client, rawUser)));
21
+ }
22
+ bulkRaw(ids) {
23
+ return super.bulk(ids);
18
24
  }
19
25
  values() {
20
- return (0, common_1.fakePromise)(super.values()).then(users => users.map(rawUser => new structures_1.User(this.client, rawUser)));
26
+ return (0, common_1.fakePromise)(super.values()).then(users => users.map(rawUser => transformers_1.Transformers.User(this.client, rawUser)));
27
+ }
28
+ valuesRaw() {
29
+ return super.values();
21
30
  }
22
31
  }
23
32
  exports.Users = Users;
@@ -1,15 +1,18 @@
1
- import type { GatewayVoiceState } from 'discord-api-types/v10';
1
+ import type { APIVoiceState } from '../../types';
2
2
  import type { ReturnCache } from '../..';
3
- import { VoiceState } from '../../structures';
4
3
  import { GuildBasedResource } from './default/guild-based';
5
- export declare class VoiceStates extends GuildBasedResource {
4
+ import { type VoiceStateStructure } from '../../client/transformers';
5
+ export declare class VoiceStates extends GuildBasedResource<any, APIVoiceState> {
6
6
  namespace: string;
7
- filter(data: GatewayVoiceState, id: string, guild_id: string): boolean;
7
+ filter(data: APIVoiceState, id: string, guild_id: string): boolean;
8
8
  parse(data: any, id: string, guild_id: string): any;
9
- get(memberId: string, guildId: string): ReturnCache<VoiceState | undefined>;
10
- bulk(ids: string[], guild: string): ReturnCache<VoiceState[]>;
11
- values(guildId: string): ReturnCache<VoiceState[]>;
9
+ get(memberId: string, guildId: string): ReturnCache<VoiceStateStructure | undefined>;
10
+ raw(memberId: string, guildId: string): ReturnCache<APIVoiceState | undefined>;
11
+ bulk(ids: string[], guild: string): ReturnCache<VoiceStateStructure[]>;
12
+ bulkRaw(ids: string[], guild: string): ReturnCache<APIVoiceState[]>;
13
+ values(guildId: string): ReturnCache<VoiceStateStructure[]>;
14
+ valuesRaw(guildId: string): ReturnCache<APIVoiceState[]>;
12
15
  }
13
- export type VoiceStateResource = Omit<GatewayVoiceState, 'member'> & {
16
+ export type VoiceStateResource = Omit<APIVoiceState, 'member'> & {
14
17
  guild_id: string;
15
18
  };
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VoiceStates = void 0;
4
4
  const common_1 = require("../../common");
5
- const structures_1 = require("../../structures");
6
5
  const guild_based_1 = require("./default/guild-based");
6
+ const transformers_1 = require("../../client/transformers");
7
7
  class VoiceStates extends guild_based_1.GuildBasedResource {
8
8
  namespace = 'voice_state';
9
9
  //@ts-expect-error
@@ -15,13 +15,24 @@ class VoiceStates extends guild_based_1.GuildBasedResource {
15
15
  return rest;
16
16
  }
17
17
  get(memberId, guildId) {
18
- return (0, common_1.fakePromise)(super.get(memberId, guildId)).then(state => state ? new structures_1.VoiceState(this.client, state) : undefined);
18
+ return (0, common_1.fakePromise)(super.get(memberId, guildId)).then(state => state ? transformers_1.Transformers.VoiceState(this.client, state) : undefined);
19
+ }
20
+ raw(memberId, guildId) {
21
+ return super.get(memberId, guildId);
19
22
  }
20
23
  bulk(ids, guild) {
21
- return (0, common_1.fakePromise)(super.bulk(ids, guild)).then(states => states.map(state => (state ? new structures_1.VoiceState(this.client, state) : undefined)).filter(y => !!y));
24
+ return (0, common_1.fakePromise)(super.bulk(ids, guild)).then(states => states
25
+ .map(state => (state ? transformers_1.Transformers.VoiceState(this.client, state) : undefined))
26
+ .filter(y => !!y));
27
+ }
28
+ bulkRaw(ids, guild) {
29
+ return super.bulk(ids, guild);
22
30
  }
23
31
  values(guildId) {
24
- return (0, common_1.fakePromise)(super.values(guildId)).then(states => states.map(state => new structures_1.VoiceState(this.client, state)));
32
+ return (0, common_1.fakePromise)(super.values(guildId)).then(states => states.map(state => transformers_1.Transformers.VoiceState(this.client, state)));
33
+ }
34
+ valuesRaw(guildId) {
35
+ return super.values(guildId);
25
36
  }
26
37
  }
27
38
  exports.VoiceStates = VoiceStates;
@@ -1,20 +1,23 @@
1
1
  import { ApiHandler } from '../api';
2
2
  import type { Adapter } from '../cache';
3
3
  import { Cache } from '../cache';
4
- import type { Command, ExtraProps, RegisteredMiddlewares } from '../commands';
4
+ import type { Command, CommandContext, ContextMenuCommand, ExtraProps, MenuCommandContext, RegisteredMiddlewares, SubCommand, UsingClient } from '../commands';
5
5
  import { type InferWithPrefix, type MiddlewareContext } from '../commands/applications/shared';
6
6
  import { CommandHandler } from '../commands/handler';
7
- import { ChannelShorter, EmojiShorter, GuildShorter, InteractionShorter, Logger, MemberShorter, MessageShorter, ReactionShorter, RoleShorter, TemplateShorter, ThreadShorter, UsersShorter, WebhookShorter, type MakeRequired } from '../common';
8
- import type { LocaleString, RESTPostAPIChannelMessageJSONBody } from 'discord-api-types/rest/v10';
9
- import type { Awaitable, DeepPartial, IntentStrings, OmitInsert, When } from '../common/types/util';
7
+ import { ApplicationShorter, ChannelShorter, EmojiShorter, GuildShorter, InteractionShorter, Logger, MemberShorter, MessageShorter, ReactionShorter, RoleShorter, TemplateShorter, ThreadShorter, UsersShorter, WebhookShorter, type MakeRequired } from '../common';
8
+ import type { LocaleString, RESTPostAPIChannelMessageJSONBody } from '../types';
9
+ import type { Awaitable, DeepPartial, IntentStrings, OmitInsert, PermissionStrings, When } from '../common/types/util';
10
10
  import { ComponentHandler } from '../components/handler';
11
11
  import { LangsHandler } from '../langs/handler';
12
- import type { ChatInputCommandInteraction, ComponentInteraction, Message, MessageCommandInteraction, ModalSubmitInteraction, UserCommandInteraction } from '../structures';
12
+ import type { ChatInputCommandInteraction, ComponentInteraction, MessageCommandInteraction, ModalSubmitInteraction, UserCommandInteraction } from '../structures';
13
13
  import type { ComponentCommand, ModalCommand } from '../components';
14
14
  import { BanShorter } from '../common/shorters/bans';
15
+ import { HandleCommand } from '../commands/handle';
16
+ import type { MessageStructure } from './transformers';
15
17
  export declare class BaseClient {
16
18
  rest: ApiHandler;
17
19
  cache: Cache;
20
+ applications: ApplicationShorter;
18
21
  users: UsersShorter;
19
22
  channels: ChannelShorter;
20
23
  guilds: GuildShorter;
@@ -33,6 +36,7 @@ export declare class BaseClient {
33
36
  langs?: LangsHandler | undefined;
34
37
  commands?: CommandHandler | undefined;
35
38
  components?: ComponentHandler | undefined;
39
+ handleCommand: HandleCommand;
36
40
  private _applicationId?;
37
41
  private _botId?;
38
42
  middlewares?: Record<string, MiddlewareContext>;
@@ -45,21 +49,25 @@ export declare class BaseClient {
45
49
  set applicationId(id: string);
46
50
  get applicationId(): string;
47
51
  get proxy(): import("../api").APIRoutes;
48
- setServices({ rest, cache, langs, middlewares, handlers, }: ServicesOptions): void;
52
+ setServices({ rest, cache, langs, middlewares, handlers, handleCommand }: ServicesOptions): void;
49
53
  protected execute(..._options: unknown[]): Promise<void>;
50
54
  start(options?: Pick<DeepPartial<StartOptions>, 'langsDir' | 'commandsDir' | 'connection' | 'token' | 'componentsDir'>): Promise<void>;
51
- protected onPacket(..._packet: unknown[]): Promise<void>;
52
- shouldUploadCommands(cachePath: string): Promise<boolean>;
53
- uploadCommands(applicationId?: string): Promise<void>;
55
+ protected onPacket(..._packet: unknown[]): Promise<any>;
56
+ private shouldUploadCommands;
57
+ private syncCachePath;
58
+ uploadCommands({ applicationId, cachePath }?: {
59
+ applicationId?: string;
60
+ cachePath?: string;
61
+ }): Promise<void>;
54
62
  loadCommands(dir?: string): Promise<void>;
55
63
  loadComponents(dir?: string): Promise<void>;
56
64
  loadLangs(dir?: string): Promise<void>;
57
65
  t(locale: string): import("..").__InternalParseLocale<import("../commands").DefaultLocale> & {
58
- get(locale?: string | undefined): import("../commands").DefaultLocale;
66
+ get(locale?: string): import("../commands").DefaultLocale;
59
67
  };
60
68
  getRC<T extends InternalRuntimeConfigHTTP | InternalRuntimeConfig = InternalRuntimeConfigHTTP | InternalRuntimeConfig>(): Promise<{
61
69
  debug: boolean;
62
- } & Omit<T, "locations" | "debug"> & {
70
+ } & Omit<T, "debug" | "locations"> & {
63
71
  templates: string | undefined;
64
72
  langs: string | undefined;
65
73
  events: string | undefined;
@@ -70,17 +78,17 @@ export declare class BaseClient {
70
78
  }>;
71
79
  }
72
80
  export interface BaseClientOptions {
73
- context?: (interaction: ChatInputCommandInteraction<boolean> | UserCommandInteraction<boolean> | MessageCommandInteraction<boolean> | ComponentInteraction | ModalSubmitInteraction | When<InferWithPrefix, Message, never>) => {};
81
+ context?: (interaction: ChatInputCommandInteraction<boolean> | UserCommandInteraction<boolean> | MessageCommandInteraction<boolean> | ComponentInteraction | ModalSubmitInteraction | When<InferWithPrefix, MessageStructure, never>) => {};
74
82
  globalMiddlewares?: readonly (keyof RegisteredMiddlewares)[];
75
83
  commands?: {
76
84
  defaults?: {
77
- onRunError?: Command['onRunError'];
85
+ onRunError?: (context: MenuCommandContext<any, never> | CommandContext, error: unknown) => unknown;
78
86
  onPermissionsFail?: Command['onPermissionsFail'];
79
- onBotPermissionsFail?: Command['onBotPermissionsFail'];
80
- onInternalError?: Command['onInternalError'];
81
- onMiddlewaresError?: Command['onMiddlewaresError'];
87
+ onBotPermissionsFail?: (context: MenuCommandContext<any, never> | CommandContext, permissions: PermissionStrings) => unknown;
88
+ onInternalError?: (client: UsingClient, command: Command | SubCommand | ContextMenuCommand, error?: unknown) => unknown;
89
+ onMiddlewaresError?: (context: CommandContext | MenuCommandContext<any, never>, error: string) => unknown;
82
90
  onOptionsError?: Command['onOptionsError'];
83
- onAfterRun?: Command['onAfterRun'];
91
+ onAfterRun?: (context: CommandContext | MenuCommandContext<any, never>, error: unknown) => unknown;
84
92
  props?: ExtraProps;
85
93
  };
86
94
  };
@@ -116,7 +124,6 @@ export interface StartOptions {
116
124
  httpConnection: {
117
125
  publicKey: string;
118
126
  port: number;
119
- useUWS: boolean;
120
127
  };
121
128
  token: string;
122
129
  }
@@ -162,8 +169,9 @@ export interface ServicesOptions {
162
169
  middlewares?: Record<string, MiddlewareContext>;
163
170
  handlers?: {
164
171
  components?: ComponentHandler | ComponentHandler['callback'];
165
- commands?: CommandHandler | Parameters<CommandHandler['setHandlers']>[0];
166
- langs?: LangsHandler | LangsHandler['callback'];
172
+ commands?: CommandHandler;
173
+ langs?: LangsHandler;
167
174
  };
175
+ handleCommand?: typeof HandleCommand;
168
176
  }
169
177
  export {};
@@ -11,9 +11,11 @@ const handler_2 = require("../components/handler");
11
11
  const handler_3 = require("../langs/handler");
12
12
  const node_fs_1 = require("node:fs");
13
13
  const bans_1 = require("../common/shorters/bans");
14
+ const handle_1 = require("../commands/handle");
14
15
  class BaseClient {
15
16
  rest;
16
17
  cache;
18
+ applications = new common_1.ApplicationShorter(this);
17
19
  users = new common_1.UsersShorter(this);
18
20
  channels = new common_1.ChannelShorter(this);
19
21
  guilds = new common_1.GuildShorter(this);
@@ -34,6 +36,7 @@ class BaseClient {
34
36
  langs = new handler_3.LangsHandler(this.logger);
35
37
  commands = new handler_1.CommandHandler(this.logger, this);
36
38
  components = new handler_2.ComponentHandler(this.logger, this);
39
+ handleCommand;
37
40
  _applicationId;
38
41
  _botId;
39
42
  middlewares;
@@ -47,7 +50,7 @@ class BaseClient {
47
50
  }
48
51
  options;
49
52
  /**@internal */
50
- static _seyfertConfig;
53
+ static _seyfertCfWorkerConfig;
51
54
  constructor(options) {
52
55
  this.options = (0, common_1.MergeOptions)({
53
56
  commands: {
@@ -104,7 +107,7 @@ class BaseClient {
104
107
  this._botId = id;
105
108
  }
106
109
  get botId() {
107
- return (this._botId ?? BaseClient.getBotIdFromToken(this.rest.options.token));
110
+ return this._botId ?? BaseClient.getBotIdFromToken(this.rest.options.token);
108
111
  }
109
112
  set applicationId(id) {
110
113
  this._applicationId = id;
@@ -115,7 +118,7 @@ class BaseClient {
115
118
  get proxy() {
116
119
  return new api_1.Router(this.rest).createProxy();
117
120
  }
118
- setServices({ rest, cache, langs, middlewares, handlers, }) {
121
+ setServices({ rest, cache, langs, middlewares, handlers, handleCommand }) {
119
122
  if (rest) {
120
123
  this.rest = rest;
121
124
  }
@@ -132,9 +135,6 @@ class BaseClient {
132
135
  }
133
136
  else if (typeof handlers.components === 'function') {
134
137
  this.components ??= new handler_2.ComponentHandler(this.logger, this);
135
- this.components.setHandlers({
136
- callback: handlers.components,
137
- });
138
138
  }
139
139
  else {
140
140
  this.components = handlers.components;
@@ -146,7 +146,6 @@ class BaseClient {
146
146
  }
147
147
  else if (typeof handlers.commands === 'object') {
148
148
  this.commands ??= new handler_1.CommandHandler(this.logger, this);
149
- this.commands.setHandlers(handlers.commands);
150
149
  }
151
150
  else {
152
151
  this.commands = handlers.commands;
@@ -158,7 +157,6 @@ class BaseClient {
158
157
  }
159
158
  else if (typeof handlers.langs === 'function') {
160
159
  this.langs ??= new handler_3.LangsHandler(this.logger);
161
- this.langs.setHandlers({ callback: handlers.langs });
162
160
  }
163
161
  else {
164
162
  this.langs = handlers.langs;
@@ -171,6 +169,8 @@ class BaseClient {
171
169
  if (langs.aliases)
172
170
  this.langs.aliases = Object.entries(langs.aliases);
173
171
  }
172
+ if (handleCommand)
173
+ this.handleCommand = new handleCommand(this);
174
174
  }
175
175
  async execute(..._options) {
176
176
  if ((await this.getRC()).debug) {
@@ -190,7 +190,7 @@ class BaseClient {
190
190
  await this.loadLangs(options.langsDir);
191
191
  await this.loadCommands(options.commandsDir);
192
192
  await this.loadComponents(options.componentsDir);
193
- const { token: tokenRC } = await this.getRC();
193
+ const { token: tokenRC, debug } = await this.getRC();
194
194
  const token = options?.token ?? tokenRC;
195
195
  if (!this.rest) {
196
196
  BaseClient.assertString(token, 'token is not a string');
@@ -198,71 +198,84 @@ class BaseClient {
198
198
  token,
199
199
  baseUrl: 'api/v10',
200
200
  domain: 'https://discord.com',
201
- debug: (await this.getRC()).debug,
201
+ debug,
202
202
  });
203
203
  }
204
204
  if (this.cache) {
205
205
  this.cache.__setClient(this);
206
206
  }
207
207
  else {
208
- this.cache = new cache_1.Cache(0, new cache_1.MemoryAdapter(), [], this);
208
+ this.cache = new cache_1.Cache(0, new cache_1.MemoryAdapter(), {}, this);
209
209
  }
210
+ if (!this.handleCommand)
211
+ this.handleCommand = new handle_1.HandleCommand(this);
212
+ // The reason of this method is so for adapters that need to connect somewhere, have time to connect.
213
+ // Or maybe clear cache?
214
+ await this.cache.adapter.start();
210
215
  }
211
216
  async onPacket(..._packet) {
212
217
  throw new Error('Function not implemented');
213
218
  }
214
- shouldUploadCommands(cachePath) {
215
- return this.commands.shouldUpload(cachePath).then(async (should) => {
216
- if (should)
217
- await node_fs_1.promises.writeFile(cachePath, JSON.stringify(this.commands.values.map((x) => x.toJSON())));
219
+ shouldUploadCommands(cachePath, guildId) {
220
+ return this.commands.shouldUpload(cachePath, guildId).then(should => {
221
+ this.logger.debug(should
222
+ ? `[${guildId ?? 'global'}] Change(s) detected, uploading commands`
223
+ : `[${guildId ?? 'global'}] commands seems to be up to date`);
218
224
  return should;
219
225
  });
220
226
  }
221
- async uploadCommands(applicationId) {
222
- applicationId ??= await this.getRC().then((x) => x.applicationId ?? this.applicationId);
227
+ syncCachePath(cachePath) {
228
+ this.logger.debug('Syncing commands cache');
229
+ return node_fs_1.promises.writeFile(cachePath, JSON.stringify(this.commands.values.filter(cmd => !('ignore' in cmd) || cmd.ignore !== shared_1.IgnoreCommand.Slash).map(x => x.toJSON())));
230
+ }
231
+ async uploadCommands({ applicationId, cachePath } = {}) {
232
+ applicationId ??= await this.getRC().then(x => x.applicationId ?? this.applicationId);
223
233
  BaseClient.assertString(applicationId, 'applicationId is not a string');
224
234
  const commands = this.commands.values;
225
- const filter = (0, common_1.filterSplit)(commands, (command) => !command.guildId);
226
- await this.proxy.applications(applicationId).commands.put({
227
- body: filter.expect
228
- .filter((cmd) => !('ignore' in cmd) || cmd.ignore !== shared_1.IgnoreCommand.Slash)
229
- .map((x) => x.toJSON()),
230
- });
235
+ const filter = (0, common_1.filterSplit)(commands, command => !command.guildId);
236
+ if (!cachePath || (await this.shouldUploadCommands(cachePath)))
237
+ await this.proxy.applications(applicationId).commands.put({
238
+ body: filter.expect
239
+ .filter(cmd => !('ignore' in cmd) || cmd.ignore !== shared_1.IgnoreCommand.Slash)
240
+ .map(x => x.toJSON()),
241
+ });
231
242
  const guilds = new Set();
232
243
  for (const command of filter.never) {
233
244
  for (const guild_id of command.guildId) {
234
245
  guilds.add(guild_id);
235
246
  }
236
247
  }
237
- for (const guild of guilds) {
238
- await this.proxy
239
- .applications(applicationId)
240
- .guilds(guild)
241
- .commands.put({
242
- body: filter.never
243
- .filter((cmd) => cmd.guildId?.includes(guild) &&
244
- (!('ignore' in cmd) ||
245
- cmd.ignore !== shared_1.IgnoreCommand.Slash))
246
- .map((x) => x.toJSON()),
247
- });
248
+ for (const guildId of guilds) {
249
+ if (!cachePath || (await this.shouldUploadCommands(cachePath, guildId))) {
250
+ await this.proxy
251
+ .applications(applicationId)
252
+ .guilds(guildId)
253
+ .commands.put({
254
+ body: filter.never
255
+ .filter(cmd => cmd.guildId?.includes(guildId) && (!('ignore' in cmd) || cmd.ignore !== shared_1.IgnoreCommand.Slash))
256
+ .map(x => x.toJSON()),
257
+ });
258
+ }
248
259
  }
260
+ if (cachePath)
261
+ await this.syncCachePath(cachePath);
249
262
  }
250
263
  async loadCommands(dir) {
251
- dir ??= await this.getRC().then((x) => x.commands);
264
+ dir ??= await this.getRC().then(x => x.commands);
252
265
  if (dir && this.commands) {
253
266
  await this.commands.load(dir, this);
254
267
  this.logger.info('CommandHandler loaded');
255
268
  }
256
269
  }
257
270
  async loadComponents(dir) {
258
- dir ??= await this.getRC().then((x) => x.components);
271
+ dir ??= await this.getRC().then(x => x.components);
259
272
  if (dir && this.components) {
260
273
  await this.components.load(dir);
261
274
  this.logger.info('ComponentHandler loaded');
262
275
  }
263
276
  }
264
277
  async loadLangs(dir) {
265
- dir ??= await this.getRC().then((x) => x.langs);
278
+ dir ??= await this.getRC().then(x => x.langs);
266
279
  if (dir && this.langs) {
267
280
  await this.langs.load(dir);
268
281
  this.logger.info('LangsHandler loaded');
@@ -272,32 +285,21 @@ class BaseClient {
272
285
  return this.langs.get(locale);
273
286
  }
274
287
  async getRC() {
275
- const seyfertConfig = (BaseClient._seyfertConfig ||
276
- (await this.options.getRC?.()) ||
277
- (await (0, common_1.magicImport)((0, node_path_1.join)(process.cwd(), 'seyfert.config.js')).then((x) => x.default ?? x)));
288
+ const seyfertConfig = (BaseClient._seyfertCfWorkerConfig ||
289
+ (await this.options?.getRC?.()) ||
290
+ (await Promise.any(['.js', '.mjs', '.cjs', '.ts', '.mts', '.cts'].map(ext => (0, common_1.magicImport)((0, node_path_1.join)(process.cwd(), `seyfert.config${ext}`)).then(x => x.default ?? x)))));
278
291
  const { locations, debug, ...env } = seyfertConfig;
279
292
  const obj = {
280
293
  debug: !!debug,
281
294
  ...env,
282
- templates: locations.templates
283
- ? (0, node_path_1.join)(process.cwd(), locations.base, locations.templates)
284
- : undefined,
285
- langs: locations.langs
286
- ? (0, node_path_1.join)(process.cwd(), locations.output, locations.langs)
287
- : undefined,
288
- events: 'events' in locations && locations.events
289
- ? (0, node_path_1.join)(process.cwd(), locations.output, locations.events)
290
- : undefined,
291
- components: locations.components
292
- ? (0, node_path_1.join)(process.cwd(), locations.output, locations.components)
293
- : undefined,
294
- commands: locations.commands
295
- ? (0, node_path_1.join)(process.cwd(), locations.output, locations.commands)
296
- : undefined,
295
+ templates: locations.templates ? (0, node_path_1.join)(process.cwd(), locations.base, locations.templates) : undefined,
296
+ langs: locations.langs ? (0, node_path_1.join)(process.cwd(), locations.output, locations.langs) : undefined,
297
+ events: 'events' in locations && locations.events ? (0, node_path_1.join)(process.cwd(), locations.output, locations.events) : undefined,
298
+ components: locations.components ? (0, node_path_1.join)(process.cwd(), locations.output, locations.components) : undefined,
299
+ commands: locations.commands ? (0, node_path_1.join)(process.cwd(), locations.output, locations.commands) : undefined,
297
300
  base: (0, node_path_1.join)(process.cwd(), locations.base),
298
301
  output: (0, node_path_1.join)(process.cwd(), locations.output),
299
302
  };
300
- BaseClient._seyfertConfig = seyfertConfig;
301
303
  return obj;
302
304
  }
303
305
  }
@@ -1,20 +1,20 @@
1
- import { type APIApplicationCommandInteractionDataOption, type GatewayMessageCreateDispatchData, type GatewayDispatchPayload, type GatewayPresenceUpdateData } from 'discord-api-types/v10';
2
- import type { Command, CommandContext, ContextOptionsResolved, Message, MessageCommandOptionErrors, SubCommand, UsingClient } from '..';
3
- import { type Awaitable, type MakeRequired, type DeepPartial, type If } from '../common';
1
+ import { type GatewayDispatchPayload, type GatewayPresenceUpdateData } from '../types';
2
+ import type { CommandContext, Message } from '..';
3
+ import { type Awaitable, type DeepPartial, type If } from '../common';
4
4
  import { EventHandler } from '../events';
5
- import { ClientUser } from '../structures';
6
5
  import { ShardManager, type ShardManagerOptions } from '../websocket';
7
6
  import { MemberUpdateHandler } from '../websocket/discord/events/memberUpdate';
8
7
  import { PresenceUpdateHandler } from '../websocket/discord/events/presenceUpdate';
9
8
  import type { BaseClientOptions, ServicesOptions, StartOptions } from './base';
10
9
  import { BaseClient } from './base';
11
10
  import { Collectors } from './collectors';
11
+ import { type ClientUserStructure, type MessageStructure } from './transformers';
12
12
  export declare class Client<Ready extends boolean = boolean> extends BaseClient {
13
13
  private __handleGuilds?;
14
14
  gateway: ShardManager;
15
- me: If<Ready, ClientUser>;
15
+ me: If<Ready, ClientUserStructure>;
16
16
  options: Omit<ClientOptions, 'commands'> & {
17
- commands: MakeRequired<NonNullable<ClientOptions['commands']>, 'argsParser' | 'optionsParser'>;
17
+ commands: NonNullable<ClientOptions['commands']>;
18
18
  };
19
19
  memberUpdateHandler: MemberUpdateHandler;
20
20
  presenceUpdateHandler: PresenceUpdateHandler;
@@ -47,18 +47,9 @@ export interface ClientOptions extends BaseClientOptions {
47
47
  compress?: ShardManagerOptions['compress'];
48
48
  };
49
49
  commands?: BaseClientOptions['commands'] & {
50
- prefix?: (message: Message) => Promise<string[]> | string[];
50
+ prefix?: (message: MessageStructure) => Awaitable<string[]>;
51
51
  deferReplyResponse?: (ctx: CommandContext) => Parameters<Message['write']>[0];
52
52
  reply?: (ctx: CommandContext) => boolean;
53
- argsParser?: (content: string, command: SubCommand | Command, message: Message) => Record<string, string>;
54
- optionsParser?: (self: UsingClient, command: Command | SubCommand, message: GatewayMessageCreateDispatchData, args: Partial<Record<string, string>>, resolved: MakeRequired<ContextOptionsResolved>) => Awaitable<{
55
- errors: {
56
- name: string;
57
- error: string;
58
- fullError: MessageCommandOptionErrors;
59
- }[];
60
- options: APIApplicationCommandInteractionDataOption[];
61
- }>;
62
53
  };
63
54
  handlePayload?: ShardManagerOptions['handlePayload'];
64
55
  }