@buape/carbon 0.7.0 → 0.9.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 (390) hide show
  1. package/dist/package.json +8 -7
  2. package/dist/src/abstracts/AnySelectMenu.d.ts +4 -3
  3. package/dist/src/abstracts/AnySelectMenu.d.ts.map +1 -1
  4. package/dist/src/abstracts/AnySelectMenu.js +8 -2
  5. package/dist/src/abstracts/AnySelectMenu.js.map +1 -1
  6. package/dist/src/abstracts/AnySelectMenuInteraction.d.ts +0 -1
  7. package/dist/src/abstracts/AnySelectMenuInteraction.d.ts.map +1 -1
  8. package/dist/src/abstracts/AnySelectMenuInteraction.js +0 -2
  9. package/dist/src/abstracts/AnySelectMenuInteraction.js.map +1 -1
  10. package/dist/src/abstracts/BaseChannel.d.ts +12 -3
  11. package/dist/src/abstracts/BaseChannel.d.ts.map +1 -1
  12. package/dist/src/abstracts/BaseChannel.js +15 -1
  13. package/dist/src/abstracts/BaseChannel.js.map +1 -1
  14. package/dist/src/abstracts/BaseCommand.d.ts +18 -8
  15. package/dist/src/abstracts/BaseCommand.d.ts.map +1 -1
  16. package/dist/src/abstracts/BaseCommand.js +24 -7
  17. package/dist/src/abstracts/BaseCommand.js.map +1 -1
  18. package/dist/src/abstracts/BaseComponent.d.ts +10 -24
  19. package/dist/src/abstracts/BaseComponent.d.ts.map +1 -1
  20. package/dist/src/abstracts/BaseComponent.js +5 -25
  21. package/dist/src/abstracts/BaseComponent.js.map +1 -1
  22. package/dist/src/abstracts/BaseComponentInteraction.d.ts +3 -4
  23. package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
  24. package/dist/src/abstracts/BaseComponentInteraction.js +3 -6
  25. package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
  26. package/dist/src/abstracts/BaseGuildChannel.d.ts +4 -3
  27. package/dist/src/abstracts/BaseGuildChannel.d.ts.map +1 -1
  28. package/dist/src/abstracts/BaseGuildChannel.js +5 -3
  29. package/dist/src/abstracts/BaseGuildChannel.js.map +1 -1
  30. package/dist/src/abstracts/BaseGuildTextChannel.d.ts +1 -1
  31. package/dist/src/abstracts/BaseGuildTextChannel.d.ts.map +1 -1
  32. package/dist/src/abstracts/BaseInteraction.d.ts +49 -36
  33. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  34. package/dist/src/abstracts/BaseInteraction.js +105 -34
  35. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  36. package/dist/src/abstracts/BaseListener.d.ts +13 -0
  37. package/dist/src/abstracts/BaseListener.d.ts.map +1 -0
  38. package/dist/src/abstracts/BaseListener.js +8 -0
  39. package/dist/src/abstracts/BaseListener.js.map +1 -0
  40. package/dist/src/abstracts/BaseMessageInteractiveComponent.d.ts +39 -0
  41. package/dist/src/abstracts/BaseMessageInteractiveComponent.d.ts.map +1 -0
  42. package/dist/src/abstracts/BaseMessageInteractiveComponent.js +33 -0
  43. package/dist/src/abstracts/BaseMessageInteractiveComponent.js.map +1 -0
  44. package/dist/src/abstracts/BaseModalComponent.d.ts +29 -0
  45. package/dist/src/abstracts/BaseModalComponent.d.ts.map +1 -0
  46. package/dist/src/abstracts/BaseModalComponent.js +33 -0
  47. package/dist/src/abstracts/BaseModalComponent.js.map +1 -0
  48. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +5 -4
  49. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -1
  50. package/dist/src/abstracts/GuildThreadOnlyChannel.js +1 -1
  51. package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -1
  52. package/dist/src/abstracts/Plugin.d.ts +6 -2
  53. package/dist/src/abstracts/Plugin.d.ts.map +1 -1
  54. package/dist/src/abstracts/Plugin.js.map +1 -1
  55. package/dist/src/classes/Client.d.ts +42 -12
  56. package/dist/src/classes/Client.d.ts.map +1 -1
  57. package/dist/src/classes/Client.js +98 -25
  58. package/dist/src/classes/Client.js.map +1 -1
  59. package/dist/src/classes/Command.d.ts +10 -2
  60. package/dist/src/classes/Command.d.ts.map +1 -1
  61. package/dist/src/classes/Command.js +12 -1
  62. package/dist/src/classes/Command.js.map +1 -1
  63. package/dist/src/classes/Listener.d.ts +376 -5
  64. package/dist/src/classes/Listener.d.ts.map +1 -1
  65. package/dist/src/classes/Listener.js +1011 -1
  66. package/dist/src/classes/Listener.js.map +1 -1
  67. package/dist/src/classes/Modal.d.ts +22 -5
  68. package/dist/src/classes/Modal.d.ts.map +1 -1
  69. package/dist/src/classes/Modal.js +14 -0
  70. package/dist/src/classes/Modal.js.map +1 -1
  71. package/dist/src/classes/RequestClient.d.ts +79 -0
  72. package/dist/src/classes/RequestClient.d.ts.map +1 -0
  73. package/dist/src/classes/RequestClient.js +225 -0
  74. package/dist/src/classes/RequestClient.js.map +1 -0
  75. package/dist/src/classes/{Button.d.ts → components/Button.d.ts} +8 -5
  76. package/dist/src/classes/components/Button.d.ts.map +1 -0
  77. package/dist/src/classes/{Button.js → components/Button.js} +13 -3
  78. package/dist/src/classes/components/Button.js.map +1 -0
  79. package/dist/src/classes/{ChannelSelectMenu.d.ts → components/ChannelSelectMenu.d.ts} +6 -4
  80. package/dist/src/classes/components/ChannelSelectMenu.d.ts.map +1 -0
  81. package/dist/src/classes/{ChannelSelectMenu.js → components/ChannelSelectMenu.js} +8 -1
  82. package/dist/src/classes/components/ChannelSelectMenu.js.map +1 -0
  83. package/dist/src/classes/components/Container.d.ts +23 -0
  84. package/dist/src/classes/components/Container.d.ts.map +1 -0
  85. package/dist/src/classes/components/Container.js +27 -0
  86. package/dist/src/classes/components/Container.js.map +1 -0
  87. package/dist/src/classes/components/File.d.ts +21 -0
  88. package/dist/src/classes/components/File.d.ts.map +1 -0
  89. package/dist/src/classes/components/File.js +33 -0
  90. package/dist/src/classes/components/File.js.map +1 -0
  91. package/dist/src/classes/components/MediaGallery.d.ts +27 -0
  92. package/dist/src/classes/components/MediaGallery.d.ts.map +1 -0
  93. package/dist/src/classes/components/MediaGallery.js +27 -0
  94. package/dist/src/classes/components/MediaGallery.js.map +1 -0
  95. package/dist/src/classes/{MentionableSelectMenu.d.ts → components/MentionableSelectMenu.d.ts} +6 -4
  96. package/dist/src/classes/components/MentionableSelectMenu.d.ts.map +1 -0
  97. package/dist/src/classes/{MentionableSelectMenu.js → components/MentionableSelectMenu.js} +8 -1
  98. package/dist/src/classes/components/MentionableSelectMenu.js.map +1 -0
  99. package/dist/src/classes/{RoleSelectMenu.d.ts → components/RoleSelectMenu.d.ts} +6 -4
  100. package/dist/src/classes/components/RoleSelectMenu.d.ts.map +1 -0
  101. package/dist/src/classes/components/RoleSelectMenu.js +20 -0
  102. package/dist/src/classes/components/RoleSelectMenu.js.map +1 -0
  103. package/dist/src/classes/components/Row.d.ts +29 -0
  104. package/dist/src/classes/components/Row.d.ts.map +1 -0
  105. package/dist/src/classes/{Row.js → components/Row.js} +8 -2
  106. package/dist/src/classes/components/Row.js.map +1 -0
  107. package/dist/src/classes/components/Section.d.ts +22 -0
  108. package/dist/src/classes/components/Section.d.ts.map +1 -0
  109. package/dist/src/classes/components/Section.js +15 -0
  110. package/dist/src/classes/components/Section.js.map +1 -0
  111. package/dist/src/classes/components/Separator.d.ts +22 -0
  112. package/dist/src/classes/components/Separator.d.ts.map +1 -0
  113. package/dist/src/classes/components/Separator.js +33 -0
  114. package/dist/src/classes/components/Separator.js.map +1 -0
  115. package/dist/src/classes/components/StringSelectMenu.d.ts +15 -0
  116. package/dist/src/classes/components/StringSelectMenu.d.ts.map +1 -0
  117. package/dist/src/classes/components/StringSelectMenu.js +19 -0
  118. package/dist/src/classes/components/StringSelectMenu.js.map +1 -0
  119. package/dist/src/classes/components/TextDisplay.d.ts +10 -0
  120. package/dist/src/classes/components/TextDisplay.d.ts.map +1 -0
  121. package/dist/src/classes/components/TextDisplay.js +19 -0
  122. package/dist/src/classes/components/TextDisplay.js.map +1 -0
  123. package/dist/src/classes/{TextInput.d.ts → components/TextInput.d.ts} +4 -3
  124. package/dist/src/classes/components/TextInput.d.ts.map +1 -0
  125. package/dist/src/classes/{TextInput.js → components/TextInput.js} +3 -2
  126. package/dist/src/classes/components/TextInput.js.map +1 -0
  127. package/dist/src/classes/components/Thumbnail.d.ts +13 -0
  128. package/dist/src/classes/components/Thumbnail.d.ts.map +1 -0
  129. package/dist/src/classes/components/Thumbnail.js +16 -0
  130. package/dist/src/classes/components/Thumbnail.js.map +1 -0
  131. package/dist/src/classes/{UserSelectMenu.d.ts → components/UserSelectMenu.d.ts} +6 -4
  132. package/dist/src/classes/components/UserSelectMenu.d.ts.map +1 -0
  133. package/dist/src/classes/components/UserSelectMenu.js +20 -0
  134. package/dist/src/classes/components/UserSelectMenu.js.map +1 -0
  135. package/dist/src/errors/BaseError.d.ts +3 -0
  136. package/dist/src/errors/BaseError.d.ts.map +1 -0
  137. package/dist/src/errors/BaseError.js +3 -0
  138. package/dist/src/errors/BaseError.js.map +1 -0
  139. package/dist/src/errors/DiscordError.d.ts +25 -0
  140. package/dist/src/errors/DiscordError.d.ts.map +1 -0
  141. package/dist/src/errors/DiscordError.js +31 -0
  142. package/dist/src/errors/DiscordError.js.map +1 -0
  143. package/dist/src/errors/RatelimitError.d.ts +15 -0
  144. package/dist/src/errors/RatelimitError.d.ts.map +1 -0
  145. package/dist/src/errors/RatelimitError.js +18 -0
  146. package/dist/src/errors/RatelimitError.js.map +1 -0
  147. package/dist/src/{factories → functions}/channelFactory.d.ts +3 -2
  148. package/dist/src/functions/channelFactory.d.ts.map +1 -0
  149. package/dist/src/functions/channelFactory.js.map +1 -0
  150. package/dist/src/functions/enforceChoicesLimit.d.ts +3 -0
  151. package/dist/src/functions/enforceChoicesLimit.d.ts.map +1 -0
  152. package/dist/src/functions/enforceChoicesLimit.js +17 -0
  153. package/dist/src/functions/enforceChoicesLimit.js.map +1 -0
  154. package/dist/src/functions/errorsMapper.d.ts +14 -0
  155. package/dist/src/functions/errorsMapper.d.ts.map +1 -0
  156. package/dist/src/functions/errorsMapper.js +46 -0
  157. package/dist/src/functions/errorsMapper.js.map +1 -0
  158. package/dist/src/index.d.ts +29 -63
  159. package/dist/src/index.d.ts.map +1 -1
  160. package/dist/src/index.js +31 -15
  161. package/dist/src/index.js.map +1 -1
  162. package/dist/src/internals/AutocompleteInteraction.d.ts +15 -5
  163. package/dist/src/internals/AutocompleteInteraction.d.ts.map +1 -1
  164. package/dist/src/internals/AutocompleteInteraction.js +27 -15
  165. package/dist/src/internals/AutocompleteInteraction.js.map +1 -1
  166. package/dist/src/internals/ButtonInteraction.d.ts +0 -1
  167. package/dist/src/internals/ButtonInteraction.d.ts.map +1 -1
  168. package/dist/src/internals/ButtonInteraction.js +0 -2
  169. package/dist/src/internals/ButtonInteraction.js.map +1 -1
  170. package/dist/src/internals/CommandHandler.d.ts +1 -1
  171. package/dist/src/internals/CommandHandler.d.ts.map +1 -1
  172. package/dist/src/internals/CommandHandler.js +25 -3
  173. package/dist/src/internals/CommandHandler.js.map +1 -1
  174. package/dist/src/internals/CommandInteraction.d.ts +7 -1
  175. package/dist/src/internals/CommandInteraction.d.ts.map +1 -1
  176. package/dist/src/internals/CommandInteraction.js +10 -4
  177. package/dist/src/internals/CommandInteraction.js.map +1 -1
  178. package/dist/src/internals/ComponentHandler.d.ts +8 -5
  179. package/dist/src/internals/ComponentHandler.d.ts.map +1 -1
  180. package/dist/src/internals/ComponentHandler.js +40 -16
  181. package/dist/src/internals/ComponentHandler.js.map +1 -1
  182. package/dist/src/internals/EventHandler.d.ts +7 -5
  183. package/dist/src/internals/EventHandler.d.ts.map +1 -1
  184. package/dist/src/internals/EventHandler.js +13 -11
  185. package/dist/src/internals/EventHandler.js.map +1 -1
  186. package/dist/src/internals/ModalHandler.d.ts +1 -1
  187. package/dist/src/internals/ModalHandler.d.ts.map +1 -1
  188. package/dist/src/internals/ModalHandler.js +6 -2
  189. package/dist/src/internals/ModalHandler.js.map +1 -1
  190. package/dist/src/internals/ModalInteraction.d.ts +2 -3
  191. package/dist/src/internals/ModalInteraction.d.ts.map +1 -1
  192. package/dist/src/internals/ModalInteraction.js +3 -4
  193. package/dist/src/internals/ModalInteraction.js.map +1 -1
  194. package/dist/src/internals/OptionsHandler.d.ts +13 -3
  195. package/dist/src/internals/OptionsHandler.d.ts.map +1 -1
  196. package/dist/src/internals/OptionsHandler.js +51 -1
  197. package/dist/src/internals/OptionsHandler.js.map +1 -1
  198. package/dist/src/permissions.d.ts +54 -0
  199. package/dist/src/permissions.d.ts.map +1 -0
  200. package/dist/src/permissions.js +4 -0
  201. package/dist/src/permissions.js.map +1 -0
  202. package/dist/src/plugins/command-data/CommandDataPlugin.d.ts +16 -0
  203. package/dist/src/plugins/command-data/CommandDataPlugin.d.ts.map +1 -0
  204. package/dist/src/plugins/command-data/CommandDataPlugin.js +46 -0
  205. package/dist/src/plugins/command-data/CommandDataPlugin.js.map +1 -0
  206. package/dist/src/plugins/command-data/index.d.ts +2 -0
  207. package/dist/src/plugins/command-data/index.d.ts.map +1 -0
  208. package/dist/src/plugins/command-data/index.js +2 -0
  209. package/dist/src/plugins/command-data/index.js.map +1 -0
  210. package/dist/src/plugins/gateway/GatewayPlugin.d.ts +41 -0
  211. package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -0
  212. package/dist/src/plugins/gateway/GatewayPlugin.js +282 -0
  213. package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -0
  214. package/dist/src/plugins/gateway/index.d.ts +6 -0
  215. package/dist/src/plugins/gateway/index.d.ts.map +1 -0
  216. package/dist/src/plugins/gateway/index.js +6 -0
  217. package/dist/src/plugins/gateway/index.js.map +1 -0
  218. package/dist/src/plugins/gateway/types.d.ts +62 -0
  219. package/dist/src/plugins/gateway/types.d.ts.map +1 -0
  220. package/dist/src/plugins/gateway/types.js +5 -0
  221. package/dist/src/plugins/gateway/types.js.map +1 -0
  222. package/dist/src/plugins/gateway/utils/heartbeat.d.ts +17 -0
  223. package/dist/src/plugins/gateway/utils/heartbeat.d.ts.map +1 -0
  224. package/dist/src/plugins/gateway/utils/heartbeat.js +28 -0
  225. package/dist/src/plugins/gateway/utils/heartbeat.js.map +1 -0
  226. package/dist/src/plugins/gateway/utils/monitor.d.ts +37 -0
  227. package/dist/src/plugins/gateway/utils/monitor.d.ts.map +1 -0
  228. package/dist/src/plugins/gateway/utils/monitor.js +88 -0
  229. package/dist/src/plugins/gateway/utils/monitor.js.map +1 -0
  230. package/dist/src/plugins/gateway/utils/payload.d.ts +22 -0
  231. package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -0
  232. package/dist/src/plugins/gateway/utils/payload.js +47 -0
  233. package/dist/src/plugins/gateway/utils/payload.js.map +1 -0
  234. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts +26 -0
  235. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts.map +1 -0
  236. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js +74 -0
  237. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js.map +1 -0
  238. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts +9 -0
  239. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts.map +1 -0
  240. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js +10 -0
  241. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js.map +1 -0
  242. package/dist/src/plugins/gateway-forwarder/index.d.ts +4 -0
  243. package/dist/src/plugins/gateway-forwarder/index.d.ts.map +1 -0
  244. package/dist/src/plugins/gateway-forwarder/index.js +4 -0
  245. package/dist/src/plugins/gateway-forwarder/index.js.map +1 -0
  246. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts +1 -0
  247. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts.map +1 -1
  248. package/dist/src/plugins/linked-roles/LinkedRoles.js +1 -0
  249. package/dist/src/plugins/linked-roles/LinkedRoles.js.map +1 -1
  250. package/dist/src/plugins/paginator/Paginator.d.ts +51 -0
  251. package/dist/src/plugins/paginator/Paginator.d.ts.map +1 -0
  252. package/dist/src/plugins/paginator/Paginator.js +155 -0
  253. package/dist/src/plugins/paginator/Paginator.js.map +1 -0
  254. package/dist/src/plugins/paginator/index.d.ts +8 -0
  255. package/dist/src/plugins/paginator/index.d.ts.map +1 -0
  256. package/dist/src/plugins/paginator/index.js +8 -0
  257. package/dist/src/plugins/paginator/index.js.map +1 -0
  258. package/dist/src/plugins/sharding/ShardingPlugin.d.ts +43 -0
  259. package/dist/src/plugins/sharding/ShardingPlugin.d.ts.map +1 -0
  260. package/dist/src/plugins/sharding/ShardingPlugin.js +111 -0
  261. package/dist/src/plugins/sharding/ShardingPlugin.js.map +1 -0
  262. package/dist/src/plugins/sharding/index.d.ts +3 -0
  263. package/dist/src/plugins/sharding/index.d.ts.map +1 -0
  264. package/dist/src/plugins/sharding/index.js +3 -0
  265. package/dist/src/plugins/sharding/index.js.map +1 -0
  266. package/dist/src/structures/DmChannel.d.ts +3 -3
  267. package/dist/src/structures/DmChannel.d.ts.map +1 -1
  268. package/dist/src/structures/DmChannel.js +5 -3
  269. package/dist/src/structures/DmChannel.js.map +1 -1
  270. package/dist/src/structures/GroupDmChannel.d.ts +1 -1
  271. package/dist/src/structures/GroupDmChannel.d.ts.map +1 -1
  272. package/dist/src/structures/Guild.d.ts +186 -6
  273. package/dist/src/structures/Guild.d.ts.map +1 -1
  274. package/dist/src/structures/Guild.js +409 -13
  275. package/dist/src/structures/Guild.js.map +1 -1
  276. package/dist/src/structures/GuildCategoryChannel.d.ts +1 -1
  277. package/dist/src/structures/GuildCategoryChannel.d.ts.map +1 -1
  278. package/dist/src/structures/GuildForumChannel.d.ts +1 -1
  279. package/dist/src/structures/GuildForumChannel.d.ts.map +1 -1
  280. package/dist/src/structures/GuildMember.d.ts +15 -12
  281. package/dist/src/structures/GuildMember.d.ts.map +1 -1
  282. package/dist/src/structures/GuildMember.js +78 -19
  283. package/dist/src/structures/GuildMember.js.map +1 -1
  284. package/dist/src/structures/GuildStageOrVoiceChannel.d.ts +1 -1
  285. package/dist/src/structures/GuildStageOrVoiceChannel.d.ts.map +1 -1
  286. package/dist/src/structures/GuildTextChannel.d.ts +1 -1
  287. package/dist/src/structures/GuildTextChannel.d.ts.map +1 -1
  288. package/dist/src/structures/GuildThreadChannel.d.ts +1 -1
  289. package/dist/src/structures/GuildThreadChannel.d.ts.map +1 -1
  290. package/dist/src/structures/Message.d.ts +31 -14
  291. package/dist/src/structures/Message.d.ts.map +1 -1
  292. package/dist/src/structures/Message.js +126 -17
  293. package/dist/src/structures/Message.js.map +1 -1
  294. package/dist/src/structures/Poll.d.ts +25 -0
  295. package/dist/src/structures/Poll.d.ts.map +1 -0
  296. package/dist/src/structures/Poll.js +45 -0
  297. package/dist/src/structures/Poll.js.map +1 -0
  298. package/dist/src/structures/Role.d.ts +31 -13
  299. package/dist/src/structures/Role.d.ts.map +1 -1
  300. package/dist/src/structures/Role.js +50 -21
  301. package/dist/src/structures/Role.js.map +1 -1
  302. package/dist/src/structures/ThreadMember.d.ts +36 -0
  303. package/dist/src/structures/ThreadMember.d.ts.map +1 -0
  304. package/dist/src/structures/ThreadMember.js +72 -0
  305. package/dist/src/structures/ThreadMember.js.map +1 -0
  306. package/dist/src/structures/User.d.ts +10 -4
  307. package/dist/src/structures/User.d.ts.map +1 -1
  308. package/dist/src/structures/User.js +10 -1
  309. package/dist/src/structures/User.js.map +1 -1
  310. package/dist/src/structures/Webhook.d.ts +135 -0
  311. package/dist/src/structures/Webhook.d.ts.map +1 -0
  312. package/dist/src/structures/Webhook.js +239 -0
  313. package/dist/src/structures/Webhook.js.map +1 -0
  314. package/dist/src/types/index.d.ts +132 -0
  315. package/dist/src/types/index.d.ts.map +1 -0
  316. package/dist/src/types/index.js +2 -0
  317. package/dist/src/types/index.js.map +1 -0
  318. package/dist/src/types/listeners.d.ts +566 -0
  319. package/dist/src/types/listeners.d.ts.map +1 -0
  320. package/dist/src/types/listeners.js +12 -0
  321. package/dist/src/types/listeners.js.map +1 -0
  322. package/dist/src/utils/customIdParser.d.ts +3 -0
  323. package/dist/src/utils/customIdParser.d.ts.map +1 -0
  324. package/dist/src/utils/customIdParser.js +17 -0
  325. package/dist/src/utils/customIdParser.js.map +1 -0
  326. package/dist/src/utils/index.d.ts +4 -0
  327. package/dist/src/utils/index.d.ts.map +1 -0
  328. package/dist/src/utils/index.js +4 -0
  329. package/dist/src/utils/index.js.map +1 -0
  330. package/dist/src/utils/payload.d.ts +4 -0
  331. package/dist/src/utils/payload.d.ts.map +1 -0
  332. package/dist/src/utils/payload.js +45 -0
  333. package/dist/src/utils/payload.js.map +1 -0
  334. package/dist/src/utils/verification.d.ts +4 -0
  335. package/dist/src/utils/verification.d.ts.map +1 -0
  336. package/dist/src/{utils.js → utils/verification.js} +1 -26
  337. package/dist/src/utils/verification.js.map +1 -0
  338. package/dist/tsconfig.tsbuildinfo +1 -1
  339. package/package.json +8 -7
  340. package/dist/src/adapters/cloudflare/index.d.ts +0 -16
  341. package/dist/src/adapters/cloudflare/index.d.ts.map +0 -1
  342. package/dist/src/adapters/cloudflare/index.js +0 -17
  343. package/dist/src/adapters/cloudflare/index.js.map +0 -1
  344. package/dist/src/adapters/next/index.d.ts +0 -14
  345. package/dist/src/adapters/next/index.d.ts.map +0 -1
  346. package/dist/src/adapters/next/index.js +0 -17
  347. package/dist/src/adapters/next/index.js.map +0 -1
  348. package/dist/src/adapters/shared.d.ts +0 -10
  349. package/dist/src/adapters/shared.d.ts.map +0 -1
  350. package/dist/src/adapters/shared.js +0 -2
  351. package/dist/src/adapters/shared.js.map +0 -1
  352. package/dist/src/classes/Button.d.ts.map +0 -1
  353. package/dist/src/classes/Button.js.map +0 -1
  354. package/dist/src/classes/ChannelSelectMenu.d.ts.map +0 -1
  355. package/dist/src/classes/ChannelSelectMenu.js.map +0 -1
  356. package/dist/src/classes/MentionableSelectMenu.d.ts.map +0 -1
  357. package/dist/src/classes/MentionableSelectMenu.js.map +0 -1
  358. package/dist/src/classes/RoleSelectMenu.d.ts.map +0 -1
  359. package/dist/src/classes/RoleSelectMenu.js +0 -13
  360. package/dist/src/classes/RoleSelectMenu.js.map +0 -1
  361. package/dist/src/classes/Row.d.ts +0 -25
  362. package/dist/src/classes/Row.d.ts.map +0 -1
  363. package/dist/src/classes/Row.js.map +0 -1
  364. package/dist/src/classes/StringSelectMenu.d.ts +0 -13
  365. package/dist/src/classes/StringSelectMenu.d.ts.map +0 -1
  366. package/dist/src/classes/StringSelectMenu.js +0 -12
  367. package/dist/src/classes/StringSelectMenu.js.map +0 -1
  368. package/dist/src/classes/TextInput.d.ts.map +0 -1
  369. package/dist/src/classes/TextInput.js.map +0 -1
  370. package/dist/src/classes/UserSelectMenu.d.ts.map +0 -1
  371. package/dist/src/classes/UserSelectMenu.js +0 -13
  372. package/dist/src/classes/UserSelectMenu.js.map +0 -1
  373. package/dist/src/createHandle.d.ts +0 -20
  374. package/dist/src/createHandle.d.ts.map +0 -1
  375. package/dist/src/createHandle.js +0 -57
  376. package/dist/src/createHandle.js.map +0 -1
  377. package/dist/src/factories/channelFactory.d.ts.map +0 -1
  378. package/dist/src/factories/channelFactory.js.map +0 -1
  379. package/dist/src/types/messagePayload.d.ts +0 -37
  380. package/dist/src/types/messagePayload.d.ts.map +0 -1
  381. package/dist/src/types/messagePayload.js +0 -2
  382. package/dist/src/types/messagePayload.js.map +0 -1
  383. package/dist/src/types.d.ts +0 -38
  384. package/dist/src/types.d.ts.map +0 -1
  385. package/dist/src/types.js +0 -2
  386. package/dist/src/types.js.map +0 -1
  387. package/dist/src/utils.d.ts +0 -27
  388. package/dist/src/utils.d.ts.map +0 -1
  389. package/dist/src/utils.js.map +0 -1
  390. /package/dist/src/{factories → functions}/channelFactory.js +0 -0
@@ -1,5 +1,6 @@
1
- import { RequestClient, type RequestClientOptions } from "@buape/carbon-request";
2
1
  import type { BaseCommand } from "../abstracts/BaseCommand.js";
2
+ import type { BaseListener } from "../abstracts/BaseListener.js";
3
+ import type { BaseMessageInteractiveComponent } from "../abstracts/BaseMessageInteractiveComponent.js";
3
4
  import type { Context, Plugin, Route } from "../abstracts/Plugin.js";
4
5
  import { CommandHandler } from "../internals/CommandHandler.js";
5
6
  import { ComponentHandler } from "../internals/ComponentHandler.js";
@@ -7,9 +8,11 @@ import { EventHandler } from "../internals/EventHandler.js";
7
8
  import { ModalHandler } from "../internals/ModalHandler.js";
8
9
  import { Guild } from "../structures/Guild.js";
9
10
  import { GuildMember } from "../structures/GuildMember.js";
11
+ import { Message } from "../structures/Message.js";
10
12
  import { Role } from "../structures/Role.js";
11
13
  import { User } from "../structures/User.js";
12
- import type { Listener } from "./Listener.js";
14
+ import { Webhook, type WebhookInput } from "../structures/Webhook.js";
15
+ import { RequestClient, type RequestClientOptions } from "./RequestClient.js";
13
16
  /**
14
17
  * The options used for initializing the client
15
18
  */
@@ -28,8 +31,9 @@ export interface ClientOptions {
28
31
  deploySecret?: string;
29
32
  /**
30
33
  * The public key of the app, used for interaction verification
34
+ * Can be a single key or an array of keys
31
35
  */
32
- publicKey: string;
36
+ publicKey: string | string[];
33
37
  /**
34
38
  * The token of the bot
35
39
  */
@@ -43,12 +47,6 @@ export interface ClientOptions {
43
47
  * @default false
44
48
  */
45
49
  autoDeploy?: boolean;
46
- /**
47
- * Whether components and modals should not be registered automatically.
48
- * If you want you register components yourself (e.g. you are changing them at runtime), you can manually call {@link ComponentHandler#registerComponent} and {@link ModalHandler#registerModal} on the client.
49
- * @default false
50
- */
51
- disableAutoRegister?: boolean;
52
50
  /**
53
51
  * Whether the deploy route should be disabled.
54
52
  * @default false
@@ -64,6 +62,11 @@ export interface ClientOptions {
64
62
  * @default false
65
63
  */
66
64
  disableEventsRoute?: boolean;
65
+ /**
66
+ * A list of guild IDs to deploy all commands to during development (guild command deployment is instant and rate-limited higher).
67
+ * If set, all commands will be deployed to these guilds instead of globally.
68
+ */
69
+ devGuilds?: string[];
67
70
  }
68
71
  /**
69
72
  * The main client used to interact with Discord
@@ -88,7 +91,11 @@ export declare class Client {
88
91
  /**
89
92
  * The event listeners that the client has registered
90
93
  */
91
- listeners: Listener[];
94
+ listeners: BaseListener[];
95
+ /**
96
+ * The components that the client has globally registered
97
+ */
98
+ components: BaseMessageInteractiveComponent[];
92
99
  /**
93
100
  * The rest client used to interact with the Discord API
94
101
  */
@@ -113,15 +120,24 @@ export declare class Client {
113
120
  * @internal
114
121
  */
115
122
  eventHandler: EventHandler;
123
+ /**
124
+ * The ID of the shard this client is running on, if sharding is enabled
125
+ */
126
+ shardId?: number;
127
+ /**
128
+ * The total number of shards, if sharding is enabled
129
+ */
130
+ totalShards?: number;
116
131
  /**
117
132
  * Creates a new client
118
133
  * @param options The options used to initialize the client
119
- * @param commands The commands that the client has registered
134
+ * @param handlers The handlers that the client has registered
120
135
  * @param plugins The plugins that the client should use
121
136
  */
122
137
  constructor(options: ClientOptions, handlers: {
123
138
  commands?: BaseCommand[];
124
- listeners?: Listener[];
139
+ listeners?: BaseListener[];
140
+ components?: BaseMessageInteractiveComponent[];
125
141
  }, plugins?: Plugin[]);
126
142
  private appendRoutes;
127
143
  /**
@@ -132,6 +148,7 @@ export declare class Client {
132
148
  /**
133
149
  * Handle an interaction request from Discord
134
150
  * @param req The request to handle
151
+ * @param ctx The context for the request
135
152
  * @returns A response
136
153
  */
137
154
  handleEventsRequest(req: Request): Promise<Response>;
@@ -178,6 +195,19 @@ export declare class Client {
178
195
  * @returns The member data
179
196
  */
180
197
  fetchMember(guildId: string, id: string): Promise<GuildMember<false, true>>;
198
+ /**
199
+ * Fetch a message from the Discord API
200
+ * @param channelId The ID of the channel the message is in
201
+ * @param messageId The ID of the message to fetch
202
+ * @returns The message data
203
+ */
204
+ fetchMessage(channelId: string, messageId: string): Promise<Message<false>>;
205
+ /**
206
+ * Fetch a webhook from the Discord API
207
+ * @param input The webhook data, ID and token, or webhook URL
208
+ * @returns The webhook data
209
+ */
210
+ fetchWebhook(input: WebhookInput): Promise<Webhook<false>>;
181
211
  }
182
212
  /**
183
213
  * @hidden
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,17 @@
1
- import { RequestClient } from "@buape/carbon-request";
2
1
  import { ApplicationWebhookType, InteractionResponseType, InteractionType, Routes } from "discord-api-types/v10";
3
- import { channelFactory } from "../factories/channelFactory.js";
2
+ import { channelFactory } from "../functions/channelFactory.js";
4
3
  import { CommandHandler } from "../internals/CommandHandler.js";
5
4
  import { ComponentHandler } from "../internals/ComponentHandler.js";
6
5
  import { EventHandler } from "../internals/EventHandler.js";
7
6
  import { ModalHandler } from "../internals/ModalHandler.js";
8
7
  import { Guild } from "../structures/Guild.js";
9
8
  import { GuildMember } from "../structures/GuildMember.js";
9
+ import { Message } from "../structures/Message.js";
10
10
  import { Role } from "../structures/Role.js";
11
11
  import { User } from "../structures/User.js";
12
- import { concatUint8Arrays, subtleCrypto, valueToUint8Array } from "../utils.js";
12
+ import { Webhook } from "../structures/Webhook.js";
13
+ import { concatUint8Arrays, subtleCrypto, valueToUint8Array } from "../utils/index.js";
14
+ import { RequestClient } from "./RequestClient.js";
13
15
  /**
14
16
  * The main client used to interact with Discord
15
17
  */
@@ -34,6 +36,10 @@ export class Client {
34
36
  * The event listeners that the client has registered
35
37
  */
36
38
  listeners = [];
39
+ /**
40
+ * The components that the client has globally registered
41
+ */
42
+ components = [];
37
43
  /**
38
44
  * The rest client used to interact with the Discord API
39
45
  */
@@ -58,10 +64,18 @@ export class Client {
58
64
  * @internal
59
65
  */
60
66
  eventHandler;
67
+ /**
68
+ * The ID of the shard this client is running on, if sharding is enabled
69
+ */
70
+ shardId;
71
+ /**
72
+ * The total number of shards, if sharding is enabled
73
+ */
74
+ totalShards;
61
75
  /**
62
76
  * Creates a new client
63
77
  * @param options The options used to initialize the client
64
- * @param commands The commands that the client has registered
78
+ * @param handlers The handlers that the client has registered
65
79
  * @param plugins The plugins that the client should use
66
80
  */
67
81
  constructor(options, handlers, plugins = []) {
@@ -76,12 +90,21 @@ export class Client {
76
90
  this.options = options;
77
91
  this.commands = handlers.commands ?? [];
78
92
  this.listeners = handlers.listeners ?? [];
93
+ this.components = handlers.components ?? [];
79
94
  // Remove trailing slashes from the base URL
80
95
  options.baseUrl = options.baseUrl.replace(/\/+$/, "");
81
96
  this.commandHandler = new CommandHandler(this);
82
97
  this.componentHandler = new ComponentHandler(this);
83
98
  this.modalHandler = new ModalHandler(this);
84
99
  this.eventHandler = new EventHandler(this);
100
+ for (const component of this.components) {
101
+ this.componentHandler.registerComponent(component);
102
+ }
103
+ for (const command of this.commands) {
104
+ for (const component of command.components ?? []) {
105
+ this.componentHandler.registerComponent(component);
106
+ }
107
+ }
85
108
  this.rest = new RequestClient(options.token, options.requestOptions);
86
109
  this.appendRoutes();
87
110
  for (const plugin of plugins) {
@@ -89,14 +112,6 @@ export class Client {
89
112
  plugin.registerRoutes?.(this);
90
113
  this.plugins.push(plugin);
91
114
  }
92
- if (!options.disableAutoRegister) {
93
- for (const command of this.commands) {
94
- for (const component of command.components)
95
- this.componentHandler.registerComponent(new component());
96
- for (const modal of command.modals)
97
- this.modalHandler.registerModal(new modal());
98
- }
99
- }
100
115
  if (options.autoDeploy) {
101
116
  this.handleDeployRequest();
102
117
  }
@@ -127,16 +142,41 @@ export class Client {
127
142
  * @returns A response
128
143
  */
129
144
  async handleDeployRequest() {
130
- const commands = this.commands
131
- .filter((c) => c.name !== "*")
132
- .map((c) => c.serialize());
133
- await this.rest.put(Routes.applicationCommands(this.options.clientId), //
134
- { body: commands });
145
+ const commands = this.commands.filter((c) => c.name !== "*");
146
+ const globalCommands = commands.filter((c) => !c.guildIds);
147
+ const guildCommandsMap = {};
148
+ for (const command of commands) {
149
+ if (command.guildIds) {
150
+ for (const guildId of command.guildIds) {
151
+ if (!guildCommandsMap[guildId])
152
+ guildCommandsMap[guildId] = [];
153
+ guildCommandsMap[guildId].push(command.serialize());
154
+ }
155
+ }
156
+ }
157
+ // If devGuilds is set, deploy all commands to those guilds (for development)
158
+ if (this.options.devGuilds && this.options.devGuilds.length > 0) {
159
+ for (const guildId of this.options.devGuilds) {
160
+ await this.rest.put(Routes.applicationGuildCommands(this.options.clientId, guildId), { body: commands.map((c) => c.serialize()) });
161
+ }
162
+ return new Response("OK (devGuilds)", { status: 202 });
163
+ }
164
+ // Deploy guild-specific commands
165
+ for (const [guildId, cmds] of Object.entries(guildCommandsMap)) {
166
+ await this.rest.put(Routes.applicationGuildCommands(this.options.clientId, guildId), { body: cmds });
167
+ }
168
+ // Deploy global commands
169
+ if (globalCommands.length > 0) {
170
+ await this.rest.put(Routes.applicationCommands(this.options.clientId), {
171
+ body: globalCommands.map((c) => c.serialize())
172
+ });
173
+ }
135
174
  return new Response("OK", { status: 202 });
136
175
  }
137
176
  /**
138
177
  * Handle an interaction request from Discord
139
178
  * @param req The request to handle
179
+ * @param ctx The context for the request
140
180
  * @returns A response
141
181
  */
142
182
  async handleEventsRequest(req) {
@@ -147,7 +187,7 @@ export class Client {
147
187
  // All ping webhooks should respond with 204 and an empty body
148
188
  if (payload.type === ApplicationWebhookType.Ping)
149
189
  return new Response(null, { status: 204 });
150
- this.eventHandler.handleEvent(payload); // Events will never return anything to Discord
190
+ this.eventHandler.handleEvent(payload.event.data, payload.event.type);
151
191
  return new Response(null, { status: 204 });
152
192
  }
153
193
  /**
@@ -208,13 +248,27 @@ export class Client {
208
248
  const timestampData = valueToUint8Array(timestamp);
209
249
  const bodyData = valueToUint8Array(body);
210
250
  const message = concatUint8Arrays(timestampData, bodyData);
211
- const isValid = await subtleCrypto.verify({
212
- name: "ed25519"
213
- }, await subtleCrypto.importKey("raw", valueToUint8Array(this.options.publicKey, "hex"), {
214
- name: "ed25519",
215
- namedCurve: "ed25519"
216
- }, false, ["verify"]), valueToUint8Array(signature, "hex"), message);
217
- return isValid;
251
+ // Convert single key to array for consistent handling
252
+ const publicKeys = Array.isArray(this.options.publicKey)
253
+ ? this.options.publicKey
254
+ : [this.options.publicKey];
255
+ // Try each public key until one works
256
+ for (const publicKey of publicKeys) {
257
+ try {
258
+ const isValid = await subtleCrypto.verify({
259
+ name: "ed25519"
260
+ }, await subtleCrypto.importKey("raw", valueToUint8Array(publicKey, "hex"), {
261
+ name: "ed25519",
262
+ namedCurve: "ed25519"
263
+ }, false, ["verify"]), valueToUint8Array(signature, "hex"), message);
264
+ if (isValid)
265
+ return true;
266
+ }
267
+ catch {
268
+ // Skip to next key if this one fails
269
+ }
270
+ }
271
+ return false;
218
272
  }
219
273
  catch (_) {
220
274
  return false;
@@ -267,5 +321,24 @@ export class Client {
267
321
  const member = (await this.rest.get(Routes.guildMember(guildId, id)));
268
322
  return new GuildMember(this, member, new Guild(this, guildId));
269
323
  }
324
+ /**
325
+ * Fetch a message from the Discord API
326
+ * @param channelId The ID of the channel the message is in
327
+ * @param messageId The ID of the message to fetch
328
+ * @returns The message data
329
+ */
330
+ async fetchMessage(channelId, messageId) {
331
+ const message = (await this.rest.get(Routes.channelMessage(channelId, messageId)));
332
+ return new Message(this, message);
333
+ }
334
+ /**
335
+ * Fetch a webhook from the Discord API
336
+ * @param input The webhook data, ID and token, or webhook URL
337
+ * @returns The webhook data
338
+ */
339
+ async fetchWebhook(input) {
340
+ const webhook = new Webhook(this, input);
341
+ return webhook.fetch();
342
+ }
270
343
  }
271
344
  //# sourceMappingURL=Client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"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"}
@@ -18,16 +18,24 @@ export declare abstract class Command extends BaseCommand {
18
18
  * The function that is called when the command is ran
19
19
  * @param interaction The interaction that triggered the command
20
20
  */
21
- abstract run(interaction: CommandInteraction): Promise<void>;
21
+ abstract run(interaction: CommandInteraction): unknown | Promise<unknown>;
22
22
  /**
23
23
  * The function that is called when the command's autocomplete is triggered.
24
24
  * @param interaction The interaction that triggered the autocomplete
25
25
  * @remarks You are expected to `override` this function to provide your own autocomplete functionality.
26
26
  */
27
27
  autocomplete(interaction: AutocompleteInteraction): Promise<void>;
28
+ /**
29
+ * The function that is called before the command is ran.
30
+ * You can use this to run things such as cooldown checks, extra permission checks, etc.
31
+ * If this returns anything other than `true`, the command will not run.
32
+ * @param interaction The interaction that triggered the command
33
+ * @returns Whether the command should continue to run
34
+ */
35
+ preCheck(interaction: CommandInteraction): Promise<true | unknown>;
28
36
  /**
29
37
  * @internal
30
38
  */
31
- serializeOptions(): CommandOptions | undefined;
39
+ serializeOptions(): APIApplicationCommandBasicOption[] | undefined;
32
40
  }
33
41
  //# sourceMappingURL=Command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../src/classes/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gCAAgC,EACrC,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACN,KAAK,uBAAuB,EAC5B,WAAW,EACX,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,cAAc,GAAG,gCAAgC,EAAE,CAAA;AAE/D;;GAEG;AACH,8BAAsB,OAAQ,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;OAGG;IACH,IAAI,EAAE,sBAAsB,CAAmC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D;;;;OAIG;IACU,YAAY,CACxB,WAAW,EAAE,uBAAuB,GAClC,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACH,gBAAgB;CAGhB"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../../src/classes/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gCAAgC,EACrC,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,KAAK,uBAAuB,EAC5B,WAAW,EACX,KAAK,kBAAkB,EACvB,MAAM,aAAa,CAAA;AAEpB,MAAM,MAAM,cAAc,GAAG,gCAAgC,EAAE,CAAA;AAE/D;;GAEG;AACH,8BAAsB,OAAQ,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAA;IAExB;;;OAGG;IACH,IAAI,EAAE,sBAAsB,CAAmC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAEzE;;;;OAIG;IACU,YAAY,CACxB,WAAW,EAAE,uBAAuB,GAClC,OAAO,CAAC,IAAI,CAAC;IAMhB;;;;;;OAMG;IACU,QAAQ,CACpB,WAAW,EAAE,kBAAkB,GAC7B,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAI1B;;OAEG;IACH,gBAAgB;CAGhB"}
@@ -1,4 +1,5 @@
1
1
  import { ApplicationCommandType } from "discord-api-types/v10";
2
+ import { enforceChoicesLimit } from "../functions/enforceChoicesLimit.js";
2
3
  import { BaseCommand } from "../index.js";
3
4
  /**
4
5
  * Represents a standard command that the user creates
@@ -21,11 +22,21 @@ export class Command extends BaseCommand {
21
22
  async autocomplete(interaction) {
22
23
  throw new Error(`The ${interaction.rawData.data.name} command does not support autocomplete`);
23
24
  }
25
+ /**
26
+ * The function that is called before the command is ran.
27
+ * You can use this to run things such as cooldown checks, extra permission checks, etc.
28
+ * If this returns anything other than `true`, the command will not run.
29
+ * @param interaction The interaction that triggered the command
30
+ * @returns Whether the command should continue to run
31
+ */
32
+ async preCheck(interaction) {
33
+ return !!interaction;
34
+ }
24
35
  /**
25
36
  * @internal
26
37
  */
27
38
  serializeOptions() {
28
- return this.options;
39
+ return enforceChoicesLimit(this.options);
29
40
  }
30
41
  }
31
42
  //# sourceMappingURL=Command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../../src/classes/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAEN,WAAW,EAEX,MAAM,aAAa,CAAA;AAIpB;;GAEG;AACH,MAAM,OAAgB,OAAQ,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAiB;IAExB;;;OAGG;IACH,IAAI,GAA2B,sBAAsB,CAAC,SAAS,CAAA;IAQ/D;;;;OAIG;IACI,KAAK,CAAC,YAAY,CACxB,WAAoC;QAEpC,MAAM,IAAI,KAAK,CACd,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,wCAAwC,CAC5E,CAAA;IACF,CAAC;IAED;;OAEG;IACH,gBAAgB;QACf,OAAO,IAAI,CAAC,OAAO,CAAA;IACpB,CAAC;CACD"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../../src/classes/Command.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAEN,WAAW,EAEX,MAAM,aAAa,CAAA;AAIpB;;GAEG;AACH,MAAM,OAAgB,OAAQ,SAAQ,WAAW;IAChD;;OAEG;IACH,OAAO,CAAiB;IAExB;;;OAGG;IACH,IAAI,GAA2B,sBAAsB,CAAC,SAAS,CAAA;IAQ/D;;;;OAIG;IACI,KAAK,CAAC,YAAY,CACxB,WAAoC;QAEpC,MAAM,IAAI,KAAK,CACd,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,wCAAwC,CAC5E,CAAA;IACF,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,QAAQ,CACpB,WAA+B;QAE/B,OAAO,CAAC,CAAC,WAAW,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACf,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACzC,CAAC;CACD"}