@buape/carbon 0.2.0 → 0.3.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 (267) hide show
  1. package/dist/package.json +7 -2
  2. package/dist/src/abstracts/BaseComponentInteraction.d.ts +6 -1
  3. package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
  4. package/dist/src/abstracts/BaseComponentInteraction.js +12 -0
  5. package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
  6. package/dist/src/abstracts/BaseInteraction.d.ts +4 -0
  7. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  8. package/dist/src/abstracts/BaseInteraction.js +4 -0
  9. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  10. package/dist/src/classes/Client.d.ts.map +1 -1
  11. package/dist/src/classes/Client.js +21 -11
  12. package/dist/src/classes/Client.js.map +1 -1
  13. package/dist/src/internals/AutocompleteInteraction.d.ts +1 -1
  14. package/dist/src/internals/FieldsHandler.d.ts +27 -0
  15. package/dist/src/internals/FieldsHandler.d.ts.map +1 -0
  16. package/dist/src/internals/FieldsHandler.js +37 -0
  17. package/dist/src/internals/FieldsHandler.js.map +1 -0
  18. package/dist/src/internals/ModalInteraction.d.ts +3 -4
  19. package/dist/src/internals/ModalInteraction.d.ts.map +1 -1
  20. package/dist/src/internals/ModalInteraction.js +3 -10
  21. package/dist/src/internals/ModalInteraction.js.map +1 -1
  22. package/dist/src/internals/OptionsHandler.d.ts +33 -17
  23. package/dist/src/internals/OptionsHandler.d.ts.map +1 -1
  24. package/dist/src/internals/OptionsHandler.js +52 -58
  25. package/dist/src/internals/OptionsHandler.js.map +1 -1
  26. package/dist/src/utils.d.ts +3 -0
  27. package/dist/src/utils.d.ts.map +1 -1
  28. package/dist/src/utils.js +54 -0
  29. package/dist/src/utils.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +6 -1
  32. package/.turbo/turbo-build.log +0 -5
  33. package/.turbo/turbo-dev.log +0 -8
  34. package/.turbo/turbo-docs.log +0 -12
  35. package/CHANGELOG.md +0 -44
  36. package/dist/src/abstracts/ButtonInteraction.d.ts +0 -8
  37. package/dist/src/abstracts/ButtonInteraction.d.ts.map +0 -1
  38. package/dist/src/abstracts/ButtonInteraction.js +0 -18
  39. package/dist/src/abstracts/ButtonInteraction.js.map +0 -1
  40. package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts +0 -7
  41. package/dist/src/abstracts/ChannelSelectMenuInteraction.d.ts.map +0 -1
  42. package/dist/src/abstracts/ChannelSelectMenuInteraction.js +0 -11
  43. package/dist/src/abstracts/ChannelSelectMenuInteraction.js.map +0 -1
  44. package/dist/src/abstracts/CommandHandler.d.ts +0 -6
  45. package/dist/src/abstracts/CommandHandler.d.ts.map +0 -1
  46. package/dist/src/abstracts/CommandHandler.js +0 -65
  47. package/dist/src/abstracts/CommandHandler.js.map +0 -1
  48. package/dist/src/abstracts/CommandInteraction.d.ts +0 -15
  49. package/dist/src/abstracts/CommandInteraction.d.ts.map +0 -1
  50. package/dist/src/abstracts/CommandInteraction.js +0 -60
  51. package/dist/src/abstracts/CommandInteraction.js.map +0 -1
  52. package/dist/src/abstracts/ComponentHandler.d.ts +0 -6
  53. package/dist/src/abstracts/ComponentHandler.d.ts.map +0 -1
  54. package/dist/src/abstracts/ComponentHandler.js +0 -64
  55. package/dist/src/abstracts/ComponentHandler.js.map +0 -1
  56. package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts +0 -8
  57. package/dist/src/abstracts/MentionableSelectMenuInteraction.d.ts.map +0 -1
  58. package/dist/src/abstracts/MentionableSelectMenuInteraction.js +0 -15
  59. package/dist/src/abstracts/MentionableSelectMenuInteraction.js.map +0 -1
  60. package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts +0 -8
  61. package/dist/src/abstracts/RoleSelectMenuInteraction.d.ts.map +0 -1
  62. package/dist/src/abstracts/RoleSelectMenuInteraction.js +0 -14
  63. package/dist/src/abstracts/RoleSelectMenuInteraction.js.map +0 -1
  64. package/dist/src/abstracts/StringSelectMenuInteraction.d.ts +0 -8
  65. package/dist/src/abstracts/StringSelectMenuInteraction.d.ts.map +0 -1
  66. package/dist/src/abstracts/StringSelectMenuInteraction.js +0 -14
  67. package/dist/src/abstracts/StringSelectMenuInteraction.js.map +0 -1
  68. package/dist/src/abstracts/UserSelectMenuInteraction.d.ts +0 -8
  69. package/dist/src/abstracts/UserSelectMenuInteraction.d.ts.map +0 -1
  70. package/dist/src/abstracts/UserSelectMenuInteraction.js +0 -14
  71. package/dist/src/abstracts/UserSelectMenuInteraction.js.map +0 -1
  72. package/dist/src/classes/Paginator.d.ts +0 -3
  73. package/dist/src/classes/Paginator.d.ts.map +0 -1
  74. package/dist/src/classes/Paginator.js +0 -3
  75. package/dist/src/classes/Paginator.js.map +0 -1
  76. package/dist/src/internals/ComponentHandler copy.d.ts +0 -17
  77. package/dist/src/internals/ComponentHandler copy.d.ts.map +0 -1
  78. package/dist/src/internals/ComponentHandler copy.js +0 -75
  79. package/dist/src/internals/ComponentHandler copy.js.map +0 -1
  80. package/dist/src/structures/AnySelectMenu.d.ts +0 -31
  81. package/dist/src/structures/AnySelectMenu.d.ts.map +0 -1
  82. package/dist/src/structures/AnySelectMenu.js +0 -19
  83. package/dist/src/structures/AnySelectMenu.js.map +0 -1
  84. package/dist/src/structures/AnySelectMenuInteraction.d.ts +0 -12
  85. package/dist/src/structures/AnySelectMenuInteraction.d.ts.map +0 -1
  86. package/dist/src/structures/AnySelectMenuInteraction.js +0 -21
  87. package/dist/src/structures/AnySelectMenuInteraction.js.map +0 -1
  88. package/dist/src/structures/Base.d.ts +0 -10
  89. package/dist/src/structures/Base.d.ts.map +0 -1
  90. package/dist/src/structures/Base.js +0 -11
  91. package/dist/src/structures/Base.js.map +0 -1
  92. package/dist/src/structures/BaseCommand.d.ts +0 -64
  93. package/dist/src/structures/BaseCommand.d.ts.map +0 -1
  94. package/dist/src/structures/BaseCommand.js +0 -58
  95. package/dist/src/structures/BaseCommand.js.map +0 -1
  96. package/dist/src/structures/BaseComponent.d.ts +0 -34
  97. package/dist/src/structures/BaseComponent.d.ts.map +0 -1
  98. package/dist/src/structures/BaseComponent.js +0 -30
  99. package/dist/src/structures/BaseComponent.js.map +0 -1
  100. package/dist/src/structures/BaseComponentInteraction.d.ts +0 -9
  101. package/dist/src/structures/BaseComponentInteraction.d.ts.map +0 -1
  102. package/dist/src/structures/BaseComponentInteraction.js +0 -14
  103. package/dist/src/structures/BaseComponentInteraction.js.map +0 -1
  104. package/dist/src/structures/BaseInteraction.d.ts +0 -81
  105. package/dist/src/structures/BaseInteraction.d.ts.map +0 -1
  106. package/dist/src/structures/BaseInteraction.js +0 -99
  107. package/dist/src/structures/BaseInteraction.js.map +0 -1
  108. package/dist/src/structures/ButtonInteraction.d.ts +0 -8
  109. package/dist/src/structures/ButtonInteraction.d.ts.map +0 -1
  110. package/dist/src/structures/ButtonInteraction.js +0 -18
  111. package/dist/src/structures/ButtonInteraction.js.map +0 -1
  112. package/dist/src/structures/ChannelSelectMenuInteraction.d.ts +0 -7
  113. package/dist/src/structures/ChannelSelectMenuInteraction.d.ts.map +0 -1
  114. package/dist/src/structures/ChannelSelectMenuInteraction.js +0 -11
  115. package/dist/src/structures/ChannelSelectMenuInteraction.js.map +0 -1
  116. package/dist/src/structures/CommandHandler.d.ts +0 -6
  117. package/dist/src/structures/CommandHandler.d.ts.map +0 -1
  118. package/dist/src/structures/CommandHandler.js +0 -70
  119. package/dist/src/structures/CommandHandler.js.map +0 -1
  120. package/dist/src/structures/CommandInteraction.d.ts +0 -15
  121. package/dist/src/structures/CommandInteraction.d.ts.map +0 -1
  122. package/dist/src/structures/CommandInteraction.js +0 -60
  123. package/dist/src/structures/CommandInteraction.js.map +0 -1
  124. package/dist/src/structures/ComponentHandler.d.ts +0 -6
  125. package/dist/src/structures/ComponentHandler.d.ts.map +0 -1
  126. package/dist/src/structures/ComponentHandler.js +0 -64
  127. package/dist/src/structures/ComponentHandler.js.map +0 -1
  128. package/dist/src/structures/MentionableSelectMenuInteraction.d.ts +0 -8
  129. package/dist/src/structures/MentionableSelectMenuInteraction.d.ts.map +0 -1
  130. package/dist/src/structures/MentionableSelectMenuInteraction.js +0 -15
  131. package/dist/src/structures/MentionableSelectMenuInteraction.js.map +0 -1
  132. package/dist/src/structures/RoleSelectMenuInteraction.d.ts +0 -8
  133. package/dist/src/structures/RoleSelectMenuInteraction.d.ts.map +0 -1
  134. package/dist/src/structures/RoleSelectMenuInteraction.js +0 -14
  135. package/dist/src/structures/RoleSelectMenuInteraction.js.map +0 -1
  136. package/dist/src/structures/StringSelectMenuInteraction.d.ts +0 -8
  137. package/dist/src/structures/StringSelectMenuInteraction.d.ts.map +0 -1
  138. package/dist/src/structures/StringSelectMenuInteraction.js +0 -14
  139. package/dist/src/structures/StringSelectMenuInteraction.js.map +0 -1
  140. package/dist/src/structures/UserSelectMenuInteraction.d.ts +0 -8
  141. package/dist/src/structures/UserSelectMenuInteraction.d.ts.map +0 -1
  142. package/dist/src/structures/UserSelectMenuInteraction.js +0 -14
  143. package/dist/src/structures/UserSelectMenuInteraction.js.map +0 -1
  144. package/dist/src/types.d.ts +0 -31
  145. package/dist/src/types.d.ts.map +0 -1
  146. package/dist/src/types.js +0 -33
  147. package/dist/src/types.js.map +0 -1
  148. package/docs/classes/AnySelectMenu.mdx +0 -114
  149. package/docs/classes/AnySelectMenuInteraction.mdx +0 -175
  150. package/docs/classes/AutocompleteInteraction.mdx +0 -166
  151. package/docs/classes/AutocompleteOptionsHandler.mdx +0 -243
  152. package/docs/classes/BaseChannel.mdx +0 -97
  153. package/docs/classes/BaseCommand.mdx +0 -61
  154. package/docs/classes/BaseComponent.mdx +0 -55
  155. package/docs/classes/BaseComponentInteraction.mdx +0 -160
  156. package/docs/classes/BaseGuildChannel.mdx +0 -262
  157. package/docs/classes/BaseGuildTextChannel.mdx +0 -360
  158. package/docs/classes/BaseInteraction.mdx +0 -137
  159. package/docs/classes/Button.mdx +0 -99
  160. package/docs/classes/ButtonInteraction.mdx +0 -155
  161. package/docs/classes/ChannelSelectMenu.mdx +0 -122
  162. package/docs/classes/ChannelSelectMenuInteraction.mdx +0 -171
  163. package/docs/classes/Client.mdx +0 -48
  164. package/docs/classes/Command.mdx +0 -111
  165. package/docs/classes/CommandHandler.mdx +0 -65
  166. package/docs/classes/CommandInteraction.mdx +0 -155
  167. package/docs/classes/CommandWithSubcommandGroups.mdx +0 -73
  168. package/docs/classes/CommandWithSubcommands.mdx +0 -76
  169. package/docs/classes/ComponentHandler.mdx +0 -49
  170. package/docs/classes/DmChannel.mdx +0 -118
  171. package/docs/classes/GroupDmChannel.mdx +0 -197
  172. package/docs/classes/Guild.mdx +0 -157
  173. package/docs/classes/GuildAnnouncementChannel.mdx +0 -377
  174. package/docs/classes/GuildCategoryChannel.mdx +0 -272
  175. package/docs/classes/GuildForumChannel.mdx +0 -333
  176. package/docs/classes/GuildMediaChannel.mdx +0 -327
  177. package/docs/classes/GuildStageChannel.mdx +0 -276
  178. package/docs/classes/GuildStageOrVoiceChannel.mdx +0 -292
  179. package/docs/classes/GuildTextChannel.mdx +0 -367
  180. package/docs/classes/GuildThreadChannel.mdx +0 -425
  181. package/docs/classes/GuildThreadOnlyChannel.mdx +0 -333
  182. package/docs/classes/GuildVoiceChannel.mdx +0 -276
  183. package/docs/classes/LinkButton.mdx +0 -84
  184. package/docs/classes/MentionableSelectMenu.mdx +0 -120
  185. package/docs/classes/MentionableSelectMenuInteraction.mdx +0 -171
  186. package/docs/classes/Message.mdx +0 -126
  187. package/docs/classes/OptionsHandler.mdx +0 -203
  188. package/docs/classes/PremiumButton.mdx +0 -84
  189. package/docs/classes/Role.mdx +0 -228
  190. package/docs/classes/RoleSelectMenu.mdx +0 -120
  191. package/docs/classes/RoleSelectMenuInteraction.mdx +0 -171
  192. package/docs/classes/Row.mdx +0 -88
  193. package/docs/classes/StringSelectMenu.mdx +0 -120
  194. package/docs/classes/StringSelectMenuInteraction.mdx +0 -171
  195. package/docs/classes/User.mdx +0 -119
  196. package/docs/classes/UserSelectMenu.mdx +0 -120
  197. package/docs/classes/UserSelectMenuInteraction.mdx +0 -171
  198. package/docs/enumerations/ClientMode.mdx +0 -16
  199. package/docs/functions/channelFactory.mdx +0 -16
  200. package/docs/index.mdx +0 -83
  201. package/docs/type-aliases/AnySelectMenuComponentType.mdx +0 -5
  202. package/docs/type-aliases/ClientOptions.mdx +0 -20
  203. package/docs/type-aliases/CommandOptions.mdx +0 -5
  204. package/docs/type-aliases/ComponentAdditionalData.mdx +0 -9
  205. package/docs/type-aliases/InteractionFileData.mdx +0 -15
  206. package/docs/type-aliases/InteractionReplyData.mdx +0 -14
  207. package/docs/type-aliases/InteractionReplyOptions.mdx +0 -13
  208. package/docs/type-aliases/RawOptions.mdx +0 -9
  209. package/docs/type-aliases/meta.json +0 -3
  210. package/src/README.md +0 -7
  211. package/src/abstracts/AnySelectMenu.ts +0 -63
  212. package/src/abstracts/AnySelectMenuInteraction.ts +0 -29
  213. package/src/abstracts/Base.ts +0 -12
  214. package/src/abstracts/BaseChannel.ts +0 -73
  215. package/src/abstracts/BaseCommand.ts +0 -89
  216. package/src/abstracts/BaseComponent.ts +0 -49
  217. package/src/abstracts/BaseComponentInteraction.ts +0 -19
  218. package/src/abstracts/BaseGuildChannel.ts +0 -152
  219. package/src/abstracts/BaseGuildTextChannel.ts +0 -77
  220. package/src/abstracts/BaseInteraction.ts +0 -209
  221. package/src/abstracts/GuildThreadOnlyChannel.ts +0 -71
  222. package/src/classes/Button.ts +0 -95
  223. package/src/classes/ChannelSelectMenu.ts +0 -21
  224. package/src/classes/Client.ts +0 -277
  225. package/src/classes/Command.ts +0 -53
  226. package/src/classes/CommandWithSubcommandGroups.ts +0 -47
  227. package/src/classes/CommandWithSubcommands.ts +0 -35
  228. package/src/classes/MentionableSelectMenu.ts +0 -19
  229. package/src/classes/Modal.ts +0 -38
  230. package/src/classes/RoleSelectMenu.ts +0 -19
  231. package/src/classes/Row.ts +0 -50
  232. package/src/classes/StringSelectMenu.ts +0 -19
  233. package/src/classes/TextInput.ts +0 -65
  234. package/src/classes/UserSelectMenu.ts +0 -19
  235. package/src/factories/channelFactory.ts +0 -43
  236. package/src/index.ts +0 -62
  237. package/src/internals/AutocompleteInteraction.ts +0 -107
  238. package/src/internals/ButtonInteraction.ts +0 -26
  239. package/src/internals/ChannelSelectMenuInteraction.ts +0 -15
  240. package/src/internals/CommandHandler.ts +0 -127
  241. package/src/internals/CommandInteraction.ts +0 -49
  242. package/src/internals/ComponentHandler.ts +0 -92
  243. package/src/internals/MentionableSelectMenuInteraction.ts +0 -21
  244. package/src/internals/ModalHandler.ts +0 -27
  245. package/src/internals/ModalInteraction.ts +0 -25
  246. package/src/internals/OptionsHandler.ts +0 -148
  247. package/src/internals/RoleSelectMenuInteraction.ts +0 -20
  248. package/src/internals/StringSelectMenuInteraction.ts +0 -20
  249. package/src/internals/UserSelectMenuInteraction.ts +0 -20
  250. package/src/structures/DmChannel.ts +0 -31
  251. package/src/structures/GroupDmChannel.ts +0 -132
  252. package/src/structures/Guild.ts +0 -154
  253. package/src/structures/GuildAnnouncementChannel.ts +0 -20
  254. package/src/structures/GuildCategoryChannel.ts +0 -16
  255. package/src/structures/GuildForumChannel.ts +0 -20
  256. package/src/structures/GuildMediaChannel.ts +0 -13
  257. package/src/structures/GuildMember.ts +0 -231
  258. package/src/structures/GuildStageOrVoiceChannel.ts +0 -46
  259. package/src/structures/GuildTextChannel.ts +0 -21
  260. package/src/structures/GuildThreadChannel.ts +0 -150
  261. package/src/structures/Message.ts +0 -124
  262. package/src/structures/Role.ts +0 -201
  263. package/src/structures/User.ts +0 -153
  264. package/src/utils.ts +0 -13
  265. package/tests/index.test.ts +0 -4
  266. package/tsconfig.json +0 -12
  267. package/typedoc.json +0 -9
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buape/carbon",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "main": "./dist/src/index.js",
6
6
  "scripts": {
@@ -11,8 +11,13 @@
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
13
  "@buape/carbon-request": "workspace:*",
14
+ "@types/node": "20",
14
15
  "discord-api-types": "0.37.99",
15
16
  "discord-verify": "1.2.0",
16
17
  "itty-router": "5.0.18"
17
- }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "LICENSE"
22
+ ]
18
23
  }
@@ -1,9 +1,14 @@
1
- import type { APIMessageComponentInteraction, ComponentType } from "discord-api-types/v10";
1
+ import { type APIMessageComponentInteraction, type ComponentType } from "discord-api-types/v10";
2
2
  import type { Client } from "../classes/Client.js";
3
3
  import { BaseInteraction } from "./BaseInteraction.js";
4
4
  export declare class BaseComponentInteraction extends BaseInteraction<APIMessageComponentInteraction> {
5
5
  customId: string;
6
6
  componentType: ComponentType;
7
7
  constructor(client: Client, data: APIMessageComponentInteraction);
8
+ /**
9
+ * Acknowledge the interaction, the user does not see a loading state.
10
+ * This can only be used for component interactions
11
+ */
12
+ acknowledge(): Promise<void>;
8
13
  }
9
14
  //# sourceMappingURL=BaseComponentInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseComponentInteraction.d.ts","sourceRoot":"","sources":["../../../src/abstracts/BaseComponentInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,8BAA8B,EAC9B,aAAa,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,8BAA8B,CAAC;IAC5F,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;gBAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B;CAOhE"}
1
+ {"version":3,"file":"BaseComponentInteraction.d.ts","sourceRoot":"","sources":["../../../src/abstracts/BaseComponentInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,8BAA8B,EACnC,KAAK,aAAa,EAGlB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,8BAA8B,CAAC;IAC5F,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;gBAChB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B;IAQhE;;;OAGG;IACG,WAAW;CAUjB"}
@@ -1,3 +1,4 @@
1
+ import { InteractionResponseType, Routes } from "discord-api-types/v10";
1
2
  import { splitCustomId } from "../utils.js";
2
3
  import { BaseInteraction } from "./BaseInteraction.js";
3
4
  export class BaseComponentInteraction extends BaseInteraction {
@@ -10,5 +11,16 @@ export class BaseComponentInteraction extends BaseInteraction {
10
11
  this.customId = splitCustomId(data.data.custom_id)[0];
11
12
  this.componentType = data.data.component_type;
12
13
  }
14
+ /**
15
+ * Acknowledge the interaction, the user does not see a loading state.
16
+ * This can only be used for component interactions
17
+ */
18
+ async acknowledge() {
19
+ await this.client.rest.post(Routes.interactionCallback(this.rawData.id, this.rawData.token), {
20
+ body: {
21
+ type: InteractionResponseType.DeferredMessageUpdate
22
+ }
23
+ });
24
+ }
13
25
  }
14
26
  //# sourceMappingURL=BaseComponentInteraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseComponentInteraction.js","sourceRoot":"","sources":["../../../src/abstracts/BaseComponentInteraction.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,OAAO,wBAAyB,SAAQ,eAA+C;IAC5F,QAAQ,CAAQ;IAChB,aAAa,CAAe;IAC5B,YAAY,MAAc,EAAE,IAAoC;QAC/D,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI;YACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;IAC9C,CAAC;CACD"}
1
+ {"version":3,"file":"BaseComponentInteraction.js","sourceRoot":"","sources":["../../../src/abstracts/BaseComponentInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,uBAAuB,EACvB,MAAM,EACN,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,OAAO,wBAAyB,SAAQ,eAA+C;IAC5F,QAAQ,CAAQ;IAChB,aAAa,CAAe;IAC5B,YAAY,MAAc,EAAE,IAAoC;QAC/D,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI;YACb,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC1E,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAA;IAC9C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAC1B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAC/D;YACC,IAAI,EAAE;gBACL,IAAI,EAAE,uBAAuB,CAAC,qBAAqB;aACnD;SACD,CACD,CAAA;IACF,CAAC;CACD"}
@@ -87,6 +87,10 @@ export declare abstract class BaseInteraction<T extends APIInteraction> extends
87
87
  * @internal
88
88
  */
89
89
  defer(): Promise<void>;
90
+ /**
91
+ * Show a modal to the user
92
+ * This can only be used if the interaction is not deferred
93
+ */
90
94
  showModal(modal: Modal): Promise<void>;
91
95
  }
92
96
  //# sourceMappingURL=BaseInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInteraction.d.ts","sourceRoot":"","sources":["../../../src/abstracts/BaseInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACN,IAAI,EACJ,KAAK,MAAM,EACX,KAAK,EACL,OAAO,EACP,KAAK,KAAK,EACV,KAAK,GAAG,EACR,IAAI,EAEJ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACrC;;OAEG;IACH,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,IAAI;IAC3E;;OAEG;IACH,IAAI,EAAE,eAAe,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,CAAC,CAAA;IACV;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAE1B;;;OAGG;IACH,SAAS,UAAQ;IAEjB,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO;IAS3E,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAG5B;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAGxB;IAED,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAKtB;IAED,IAAI,OAAO,+dAGV;IAED,IAAI,MAAM,uBAIT;IAED;;;;OAIG;IACG,KAAK,CACV,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,uBAA4B;IAwCtC;;;;OAIG;IACG,KAAK;IAcL,SAAS,CAAC,KAAK,EAAE,KAAK;CAc5B"}
1
+ {"version":3,"file":"BaseInteraction.d.ts","sourceRoot":"","sources":["../../../src/abstracts/BaseInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,cAAc,EAEnB,KAAK,eAAe,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACN,IAAI,EACJ,KAAK,MAAM,EACX,KAAK,EACL,OAAO,EACP,KAAK,KAAK,EACV,KAAK,GAAG,EACR,IAAI,EAEJ,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAClC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,EAAE,CAAA;CAClB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACrC;;OAEG;IACH,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAA;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,8BAAsB,eAAe,CAAC,CAAC,SAAS,cAAc,CAAE,SAAQ,IAAI;IAC3E;;OAEG;IACH,IAAI,EAAE,eAAe,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,CAAC,CAAA;IACV;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAE1B;;;OAGG;IACH,SAAS,UAAQ;IAEjB,OAAO,CAAC,gBAAgB,CAAQ;gBAEpB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,GAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO;IAS3E,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAG5B;IAED,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,CAGxB;IAED,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,CAKtB;IAED,IAAI,OAAO,+dAGV;IAED,IAAI,MAAM,uBAIT;IAED;;;;OAIG;IACG,KAAK,CACV,IAAI,EAAE,oBAAoB,EAC1B,OAAO,GAAE,uBAA4B;IAwCtC;;;;OAIG;IACG,KAAK;IAcX;;;OAGG;IACG,SAAS,CAAC,KAAK,EAAE,KAAK;CAc5B"}
@@ -111,6 +111,10 @@ export class BaseInteraction extends Base {
111
111
  }
112
112
  });
113
113
  }
114
+ /**
115
+ * Show a modal to the user
116
+ * This can only be used if the interaction is not deferred
117
+ */
114
118
  async showModal(modal) {
115
119
  if (this._deferred)
116
120
  throw new Error("You cannot defer an interaction that shows a modal");
@@ -1 +1 @@
1
- {"version":3,"file":"BaseInteraction.js","sourceRoot":"","sources":["../../../src/abstracts/BaseInteraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseInteraction.js","sourceRoot":"","sources":["../../../src/abstracts/BaseInteraction.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAQhF,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAqB,MAAM,aAAa,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D;;;GAGG;AACH,oBAAY,UAAU;IACrB,MAAM,SAAS;IACf,iBAAiB,eAAe;IAChC,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACX;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;;OAaG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,qBAAa,MAAM;IAClB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IACrD;;OAEG;IACH,IAAI,EAAE,aAAa,CAAA;IACnB;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAAA;IAClC;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;OAIG;gBACS,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE;IAoB3D;;;OAGG;IACG,cAAc;IAepB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,gBAAgB;IAgExD;;;OAGG;YACW,mBAAmB;CAiBjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAEhC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;CACtC"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAOhF,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAqB,MAAM,aAAa,CAAA;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAG3D;;;GAGG;AACH,oBAAY,UAAU;IACrB,MAAM,SAAS;IACf,iBAAiB,eAAe;IAChC,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,GAAG,QAAQ;CACX;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;;OAaG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,cAAc,CAAC,EAAE,oBAAoB,CAAA;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;GAEG;AACH,qBAAa,MAAM;IAClB;;OAEG;IACH,OAAO,EAAE,aAAa,CAAA;IACtB;;OAEG;IACH,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IACrD;;OAEG;IACH,IAAI,EAAE,aAAa,CAAA;IACnB;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAAA;IAClC;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,YAAY,EAAE,YAAY,CAAA;IAE1B;;;;OAIG;gBACS,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE;IAoB3D;;;OAGG;IACG,cAAc;IAepB;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;;;;OAKG;IACU,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,gBAAgB;IAgExD;;;OAGG;YACW,mBAAmB;CAiCjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAEhC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;CACtC"}
@@ -1,10 +1,10 @@
1
1
  import { RequestClient } from "@buape/carbon-request";
2
2
  import { InteractionResponseType, InteractionType, Routes } from "discord-api-types/v10";
3
- import { PlatformAlgorithm, isValidRequest } from "discord-verify";
4
3
  import { AutoRouter, StatusError, json } from "itty-router";
5
4
  import { CommandHandler } from "../internals/CommandHandler.js";
6
5
  import { ComponentHandler } from "../internals/ComponentHandler.js";
7
6
  import { ModalHandler } from "../internals/ModalHandler.js";
7
+ import { concatUint8Arrays, subtleCrypto, valueToUint8Array } from "../utils.js";
8
8
  /**
9
9
  * The mode that the client is running in.
10
10
  * Different platforms have different requirements for how processes are handled.
@@ -175,17 +175,27 @@ export class Client {
175
175
  * @param req The request to validate
176
176
  */
177
177
  async validateInteraction(req) {
178
- if (req.method !== "POST") {
179
- throw new StatusError(405);
178
+ const body = await req.clone().text();
179
+ const signature = req.headers.get("X-Signature-Ed25519");
180
+ const timestamp = req.headers.get("X-Signature-Timestamp");
181
+ if (!timestamp || !signature || req.method !== "POST" || !body) {
182
+ throw new StatusError(401);
183
+ }
184
+ try {
185
+ const timestampData = valueToUint8Array(timestamp);
186
+ const bodyData = valueToUint8Array(body);
187
+ const message = concatUint8Arrays(timestampData, bodyData);
188
+ const isValid = await subtleCrypto.verify({
189
+ name: "ed25519"
190
+ }, await subtleCrypto.importKey("raw", valueToUint8Array(this.options.publicKey, "hex"), {
191
+ name: "ed25519",
192
+ namedCurve: "ed25519"
193
+ }, false, ["verify"]), valueToUint8Array(signature, "hex"), message);
194
+ return isValid;
195
+ }
196
+ catch (_) {
197
+ return false;
180
198
  }
181
- const isValid = await isValidRequest(req, this.options.publicKey, this.options.mode === ClientMode.CloudflareWorkers
182
- ? PlatformAlgorithm.Cloudflare
183
- : this.options.mode === ClientMode.Vercel
184
- ? PlatformAlgorithm.VercelProd
185
- : this.options.mode === ClientMode.Web
186
- ? PlatformAlgorithm.Web
187
- : PlatformAlgorithm.NewNode);
188
- return isValid;
189
199
  }
190
200
  }
191
201
  //# 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":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,uBAAuB,CAAA;AAChF,OAAO,EAEN,uBAAuB,EACvB,eAAe,EACf,MAAM,EACN,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAuB,WAAW,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEhF;;;GAGG;AACH,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IACrB,6BAAe,CAAA;IACf,8CAAgC,CAAA;IAChC,yBAAW,CAAA;IACX,+BAAiB,CAAA;IACjB,yBAAW,CAAA;AACZ,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAwDD;;GAEG;AACH,MAAM,OAAO,MAAM;IAClB;;OAEG;IACH,OAAO,CAAe;IACtB;;OAEG;IACH,QAAQ,CAAe;IACvB;;OAEG;IACH,MAAM,CAA+C;IACrD;;OAEG;IACH,IAAI,CAAe;IACnB;;;OAGG;IACH,gBAAgB,CAAkB;IAClC;;;OAGG;IACH,cAAc,CAAgB;IAC9B;;;OAGG;IACH,YAAY,CAAc;IAE1B;;;;OAIG;IACH,YAAY,OAAsB,EAAE,QAAuB;QAC1D,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAC3D,IAAI,CAAC,OAAO,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,MAAM,UAAU,GACf,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI;YACxD,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC7B,CAAC,CAAC,EAAE,CAAA;QACN,4DAA4D;QAC5D,IAAI,CAAC,MAAM,GAAG,UAAU,CAAkC,UAAU,CAAC,CAAA;QACrE,IAAI,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;QACpE,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU;YAAE,IAAI,CAAC,cAAc,EAAE,CAAA;IACnD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QACnB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC9C,OAAO,OAAO,CAAC,SAAS,EAAE,CAAA;YAC3B,CAAC,CAAC,CAAA;YACF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACtE,IAAI,EAAE,QAAQ;aACd,CAAC,CAAA;YACF,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,MAAM,sBAAsB,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;YAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACF,CAAC;IAED;;OAEG;IACK,WAAW;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW;gBAC3B,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;YACxD,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACf,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,cAAc,EAC/C,KAAK,EAAE,GAAG,EAAE,GAAsB,EAAE,EAAE;YACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;QACnC,CAAC,CACD,CAAA;IACF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,GAAsB;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;QACnD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,IAAI,QAAQ,CAAC,2BAA2B,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAClE,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA8B,CAAA;QACtE,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC;gBACX,IAAI,EAAE,uBAAuB,CAAC,IAAI;aAClC,CAAC,CAAA;QACH,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,kBAAkB,EAAE,CAAC;YAChE,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAA;gBACnE,CAAC,CAAC,EAAE,CACJ,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAA;YACnE,CAAC;QACF,CAAC;QACD,IACC,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,8BAA8B,EACrE,CAAC;YACF,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CACtD,cAAc,CACd,CAAA;gBACF,CAAC,CAAC,EAAE,CACJ,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAA;YACxE,CAAC;QACF,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,gBAAgB,EAAE,CAAC;YAC9D,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;gBAC9D,CAAC,CAAC,EAAE,CACJ,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;YAC9D,CAAC;QACF,CAAC;QACD,IAAI,cAAc,CAAC,IAAI,KAAK,eAAe,CAAC,WAAW,EAAE,CAAC;YACzD,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC;gBACpB,GAAG,CAAC,SAAS,CACZ,CAAC,KAAK,IAAI,EAAE;oBACX,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;gBAC1D,CAAC,CAAC,EAAE,CACJ,CAAA;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAA;YAC1D,CAAC;QACF,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAAC,GAAY;QAC7C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAA;QACrC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QACxD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;QAC1D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAChE,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAA;YAClD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACxC,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CACxC;gBACC,IAAI,EAAE,SAAS;aACf,EACD,MAAM,YAAY,CAAC,SAAS,CAC3B,KAAK,EACL,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAChD;gBACC,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,SAAS;aACrB,EACD,KAAK,EACL,CAAC,QAAQ,CAAC,CACV,EACD,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,EACnC,OAAO,CACP,CAAA;YACD,OAAO,OAAO,CAAA;QACf,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,KAAK,CAAA;QACb,CAAC;IACF,CAAC;CACD"}
@@ -29,6 +29,6 @@ export declare class AutocompleteOptionsHandler extends OptionsHandler {
29
29
  /**
30
30
  * Get the focused option (the one that is being autocompleted)
31
31
  */
32
- getFocused(): string | number | true | null | undefined;
32
+ getFocused(): string | number | boolean | null | undefined;
33
33
  }
34
34
  //# sourceMappingURL=AutocompleteInteraction.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { Base } from "../abstracts/Base.js";
2
+ import type { APIModalSubmitInteraction, Client } from "../index.js";
3
+ /**
4
+ * This class is used to parse the options of a command, and provide errors for any missing or invalid options.
5
+ * It is used internally by the Command class.
6
+ */
7
+ export declare class FieldsHandler extends Base {
8
+ /**
9
+ * The raw options that were in the interaction data, before they were parsed.
10
+ */
11
+ readonly raw: {
12
+ [key: string]: string;
13
+ };
14
+ /**
15
+ * The errors that were encountered while parsing the options.
16
+ */
17
+ readonly errors: Array<string>;
18
+ constructor(client: Client, interaction: APIModalSubmitInteraction);
19
+ /**
20
+ * Get the value of a text input.
21
+ * @param key The name of the input to get the value of.
22
+ * @returns The value of the input, or undefined if the input was not provided.
23
+ */
24
+ getText(key: string, required?: false): string | undefined;
25
+ getText(key: string, required: true): string;
26
+ }
27
+ //# sourceMappingURL=FieldsHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldsHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/FieldsHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpE;;;GAGG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACtC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAK;IAC5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAK;gBAEvB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,yBAAyB;IAWlE;;;;OAIG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAC1D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;CASnD"}
@@ -0,0 +1,37 @@
1
+ import { ComponentType } from "discord-api-types/v10";
2
+ import { Base } from "../abstracts/Base.js";
3
+ /**
4
+ * This class is used to parse the options of a command, and provide errors for any missing or invalid options.
5
+ * It is used internally by the Command class.
6
+ */
7
+ export class FieldsHandler extends Base {
8
+ /**
9
+ * The raw options that were in the interaction data, before they were parsed.
10
+ */
11
+ raw = {};
12
+ /**
13
+ * The errors that were encountered while parsing the options.
14
+ */
15
+ errors = [];
16
+ constructor(client, interaction) {
17
+ super(client);
18
+ interaction.data.components.map((row) => {
19
+ row.components.map((component) => {
20
+ if (component.type === ComponentType.TextInput) {
21
+ this.raw[component.custom_id] = component.value;
22
+ }
23
+ });
24
+ });
25
+ }
26
+ getText(key, required = false) {
27
+ const value = this.raw[key];
28
+ if (required) {
29
+ if (!value || typeof value !== "string")
30
+ throw new Error(`Missing required field: ${key}`);
31
+ }
32
+ else if (!value || typeof value !== "string")
33
+ return undefined;
34
+ return value;
35
+ }
36
+ }
37
+ //# sourceMappingURL=FieldsHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FieldsHandler.js","sourceRoot":"","sources":["../../../src/internals/FieldsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,IAAI;IACtC;;OAEG;IACM,GAAG,GAA8B,EAAE,CAAA;IAC5C;;OAEG;IACM,MAAM,GAAkB,EAAE,CAAA;IAEnC,YAAY,MAAc,EAAE,WAAsC;QACjE,KAAK,CAAC,MAAM,CAAC,CAAA;QACb,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBAChC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;oBAChD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAA;gBAChD,CAAC;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;IASM,OAAO,CAAC,GAAW,EAAE,QAAQ,GAAG,KAAK;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACtC,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAA;QACnD,CAAC;aAAM,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QAChE,OAAO,KAAK,CAAA;IACb,CAAC;CACD"}
@@ -1,11 +1,10 @@
1
- import { type APIModalSubmitInteraction } from "discord-api-types/v10";
1
+ import type { APIModalSubmitInteraction } from "discord-api-types/v10";
2
2
  import { BaseInteraction } from "../abstracts/BaseInteraction.js";
3
3
  import type { Client } from "../index.js";
4
+ import { FieldsHandler } from "./FieldsHandler.js";
4
5
  export declare class ModalInteraction extends BaseInteraction<APIModalSubmitInteraction> {
5
6
  customId: string;
6
- values: {
7
- [key: string]: string;
8
- };
7
+ fields: FieldsHandler;
9
8
  constructor(client: Client, data: APIModalSubmitInteraction);
10
9
  }
11
10
  //# sourceMappingURL=ModalInteraction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalInteraction.d.ts","sourceRoot":"","sources":["../../../src/internals/ModalInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,yBAAyB,EAE9B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,yBAAyB,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;gBAErB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;CAa3D"}
1
+ {"version":3,"file":"ModalInteraction.d.ts","sourceRoot":"","sources":["../../../src/internals/ModalInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,yBAAyB,CAAC;IAC/E,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,aAAa,CAAA;gBAET,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB;CAM3D"}
@@ -1,19 +1,12 @@
1
- import { ComponentType } from "discord-api-types/v10";
2
1
  import { BaseInteraction } from "../abstracts/BaseInteraction.js";
2
+ import { FieldsHandler } from "./FieldsHandler.js";
3
3
  export class ModalInteraction extends BaseInteraction {
4
4
  customId;
5
- values;
5
+ fields;
6
6
  constructor(client, data) {
7
7
  super(client, data);
8
8
  this.customId = data.data.custom_id;
9
- this.values = {};
10
- data.data.components.map((row) => {
11
- row.components.map((component) => {
12
- if (component.type === ComponentType.TextInput) {
13
- this.values[component.custom_id] = component.value;
14
- }
15
- });
16
- });
9
+ this.fields = new FieldsHandler(client, data);
17
10
  }
18
11
  }
19
12
  //# sourceMappingURL=ModalInteraction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalInteraction.js","sourceRoot":"","sources":["../../../src/internals/ModalInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,aAAa,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAGjE,MAAM,OAAO,gBAAiB,SAAQ,eAA0C;IAC/E,QAAQ,CAAQ;IAChB,MAAM,CAA2B;IAEjC,YAAY,MAAc,EAAE,IAA+B;QAC1D,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;gBAChC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,EAAE,CAAC;oBAChD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAA;gBACnD,CAAC;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"ModalInteraction.js","sourceRoot":"","sources":["../../../src/internals/ModalInteraction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,MAAM,OAAO,gBAAiB,SAAQ,eAA0C;IAC/E,QAAQ,CAAQ;IAChB,MAAM,CAAe;IAErB,YAAY,MAAc,EAAE,IAA+B;QAC1D,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;CACD"}
@@ -1,6 +1,6 @@
1
1
  import { type APIApplicationCommandInteractionDataBasicOption } from "discord-api-types/v10";
2
2
  import { Base } from "../abstracts/Base.js";
3
- import { type Client, Role, User } from "../index.js";
3
+ import { type Client, Role, User, channelFactory } from "../index.js";
4
4
  export type RawOptions = {
5
5
  [key: string]: APIApplicationCommandInteractionDataBasicOption["value"] | undefined;
6
6
  };
@@ -21,50 +21,66 @@ export declare class OptionsHandler extends Base {
21
21
  /**
22
22
  * Get the value of a string option.
23
23
  * @param key The name of the option to get the value of.
24
- * @returns The value of the option, or undefined if the option was not provided.
24
+ * @param required Whether the option is required.
25
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
25
26
  */
26
- getString(key: string): string | undefined;
27
+ getString(key: string, required?: false): string | undefined;
28
+ getString(key: string, required: true): string;
27
29
  /**
28
30
  * Get the value of an integer option.
29
31
  * @param key The name of the option to get the value of.
30
- * @returns The value of the option, or undefined if the option was not provided.
32
+ * @param required Whether the option is required.
33
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
31
34
  */
32
- getInteger(key: string): number | undefined;
35
+ getInteger(key: string, required?: false): number | undefined;
36
+ getInteger(key: string, required: true): number;
33
37
  /**
34
38
  * Get the value of a number option.
35
39
  * @param key The name of the option to get the value of.
36
- * @returns The value of the option, or undefined if the option was not provided.
40
+ * @param required Whether the option is required.
41
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
37
42
  */
38
- getNumber(key: string): number | undefined;
43
+ getNumber(key: string, required?: false): number | undefined;
44
+ getNumber(key: string, required: true): number;
39
45
  /**
40
46
  * Get the value of a boolean option.
41
47
  * @param key The name of the option to get the value of.
42
- * @returns The value of the option, or undefined if the option was not provided.
48
+ * @param required Whether the option is required.
49
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
43
50
  */
44
- getBoolean(key: string): true | undefined;
51
+ getBoolean(key: string, required?: false): boolean | undefined;
52
+ getBoolean(key: string, required: true): boolean;
45
53
  /**
46
54
  * Get the value of a user option.
47
55
  * @param key The name of the option to get the value of.
48
- * @returns The value of the option, or undefined if the option was not provided.
56
+ * @param required Whether the option is required.
57
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
49
58
  */
50
- getUser(key: string): User | undefined;
59
+ getUser(key: string, required?: false): User | undefined;
60
+ getUser(key: string, required: true): User;
51
61
  /**
52
62
  * Get the value of a channel option.
53
63
  * @param key The name of the option to get the value of.
54
- * @returns The value of the option, or undefined if the option was not provided.
64
+ * @param required Whether the option is required.
65
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
55
66
  */
56
- getChannel(key: string): Promise<import("../index.js").DmChannel | import("../index.js").GroupDmChannel | import("../index.js").GuildTextChannel | import("../index.js").GuildVoiceChannel | import("../index.js").GuildCategoryChannel | import("../index.js").GuildAnnouncementChannel | import("../index.js").GuildThreadChannel<import("discord-api-types/v10").ThreadChannelType> | import("../index.js").GuildStageChannel | import("../index.js").GuildForumChannel | import("../index.js").GuildMediaChannel | null | undefined>;
67
+ getChannel(key: string, required?: false): Promise<ReturnType<typeof channelFactory> | undefined>;
68
+ getChannel(key: string, required: true): Promise<ReturnType<typeof channelFactory>>;
57
69
  /**
58
70
  * Get the value of a role option.
59
71
  * @param key The name of the option to get the value of.
60
- * @returns The value of the option, or undefined if the option was not provided.
72
+ * @param required Whether the option is required.
73
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
61
74
  */
62
- getRole(key: string): Role | undefined;
75
+ getRole(key: string, required?: false): Role | undefined;
76
+ getRole(key: string, required: true): Role;
63
77
  /**
64
78
  * Get the value of a mentionable option.
65
79
  * @param key The name of the option to get the value of.
66
- * @returns The value of the option, or undefined if the option was not provided.
80
+ * @param required Whether the option is required.
81
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
67
82
  */
68
- getMentionable(key: string): Promise<User | Role | undefined>;
83
+ getMentionable(key: string, required?: false): Promise<User | Role | undefined>;
84
+ getMentionable(key: string, required: true): Promise<User | Role>;
69
85
  }
70
86
  //# sourceMappingURL=OptionsHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionsHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,+CAA+C,EAIpD,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAkB,MAAM,aAAa,CAAA;AAErE,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GACT,+CAA+C,CAAC,OAAO,CAAC,GACxD,SAAS,CAAA;CACZ,CAAA;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACvC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,+CAA+C,EAAE,CAAA;IAC/D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAK;gBAGlC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,+CAA+C,EAAE;IAM3D;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM;IAQ5B;;;;OAIG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM;IAS7B;;;;OAIG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM;IAQ5B;;;;OAIG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM;IAQ7B;;;;OAIG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM;IAQ1B;;;;OAIG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM;IASnC;;;;OAIG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAQ7C;;;;OAIG;IACU,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;CAY1E"}
1
+ {"version":3,"file":"OptionsHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,+CAA+C,EAIpD,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAErE,MAAM,MAAM,UAAU,GAAG;IACxB,CAAC,GAAG,EAAE,MAAM,GACT,+CAA+C,CAAC,OAAO,CAAC,GACxD,SAAS,CAAA;CACZ,CAAA;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,IAAI;IACvC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,+CAA+C,EAAE,CAAA;IAC/D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAK;gBAGlC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,+CAA+C,EAAE;IAM3D;;;;;OAKG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAC5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;IAYrD;;;;;OAKG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAC7D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;IAiBtD;;;;;OAKG;IACI,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAC5D,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,MAAM;IAYrD;;;;;OAKG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS;IAC9D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO;IAYvD;;;;;OAKG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS;IACxD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;IAYjD;;;;;OAKG;IACU,UAAU,CACtB,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACd,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,UAAU,CACtB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACZ,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;IAgB7C;;;;;OAKG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,SAAS;IACxD,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI;IAYjD;;;;;OAKG;IACU,cAAc,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;IACtB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;CAmB9E"}
@@ -18,92 +18,86 @@ export class OptionsHandler extends Base {
18
18
  super(client);
19
19
  this.raw = options;
20
20
  }
21
- /**
22
- * Get the value of a string option.
23
- * @param key The name of the option to get the value of.
24
- * @returns The value of the option, or undefined if the option was not provided.
25
- */
26
- getString(key) {
21
+ getString(key, required = false) {
27
22
  const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.String)?.value;
28
- if (!value || typeof value !== "string")
23
+ if (required) {
24
+ if (!value || typeof value !== "string")
25
+ throw new Error(`Missing required option: ${key}`);
26
+ }
27
+ else if (!value || typeof value !== "string")
29
28
  return undefined;
30
29
  return value;
31
30
  }
32
- /**
33
- * Get the value of an integer option.
34
- * @param key The name of the option to get the value of.
35
- * @returns The value of the option, or undefined if the option was not provided.
36
- */
37
- getInteger(key) {
38
- const num = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Integer)?.value;
39
- if (!num || typeof num !== "number" || !Number.isSafeInteger(num))
31
+ getInteger(key, required = false) {
32
+ const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Integer)?.value;
33
+ if (required) {
34
+ if (!value || typeof value !== "number" || !Number.isSafeInteger(value))
35
+ throw new Error(`Missing required option: ${key}`);
36
+ }
37
+ else if (!value ||
38
+ typeof value !== "number" ||
39
+ !Number.isSafeInteger(value))
40
40
  return undefined;
41
- return num;
41
+ return value;
42
42
  }
43
- /**
44
- * Get the value of a number option.
45
- * @param key The name of the option to get the value of.
46
- * @returns The value of the option, or undefined if the option was not provided.
47
- */
48
- getNumber(key) {
43
+ getNumber(key, required = false) {
49
44
  const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Number)?.value;
50
- if (!value || typeof value !== "number")
45
+ if (required) {
46
+ if (!value || typeof value !== "number")
47
+ throw new Error(`Missing required option: ${key}`);
48
+ }
49
+ else if (!value || typeof value !== "number")
51
50
  return undefined;
52
51
  return value;
53
52
  }
54
- /**
55
- * Get the value of a boolean option.
56
- * @param key The name of the option to get the value of.
57
- * @returns The value of the option, or undefined if the option was not provided.
58
- */
59
- getBoolean(key) {
53
+ getBoolean(key, required = false) {
60
54
  const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Boolean)?.value;
61
- if (!value || typeof value !== "boolean")
55
+ if (required) {
56
+ if (!value || typeof value !== "boolean")
57
+ throw new Error(`Missing required option: ${key}`);
58
+ }
59
+ else if (!value || typeof value !== "boolean")
62
60
  return undefined;
63
61
  return value;
64
62
  }
65
- /**
66
- * Get the value of a user option.
67
- * @param key The name of the option to get the value of.
68
- * @returns The value of the option, or undefined if the option was not provided.
69
- */
70
- getUser(key) {
63
+ getUser(key, required = false) {
71
64
  const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.User)?.value;
72
- if (!id || typeof id !== "string")
65
+ if (required) {
66
+ if (!id || typeof id !== "string")
67
+ throw new Error(`Missing required option: ${key}`);
68
+ }
69
+ else if (!id || typeof id !== "string")
73
70
  return undefined;
74
71
  return new User(this.client, id);
75
72
  }
76
- /**
77
- * Get the value of a channel option.
78
- * @param key The name of the option to get the value of.
79
- * @returns The value of the option, or undefined if the option was not provided.
80
- */
81
- async getChannel(key) {
73
+ async getChannel(key, required = false) {
82
74
  const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Channel)?.value;
83
- if (!id || typeof id !== "string")
75
+ if (required) {
76
+ if (!id || typeof id !== "string")
77
+ throw new Error(`Missing required option: ${key}`);
78
+ }
79
+ else if (!id || typeof id !== "string")
84
80
  return undefined;
85
81
  const data = (await this.client.rest.get(Routes.channel(id)));
86
82
  return channelFactory(this.client, data);
87
83
  }
88
- /**
89
- * Get the value of a role option.
90
- * @param key The name of the option to get the value of.
91
- * @returns The value of the option, or undefined if the option was not provided.
92
- */
93
- getRole(key) {
84
+ getRole(key, required = false) {
94
85
  const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Role)?.value;
95
- if (!id || typeof id !== "string")
86
+ if (required) {
87
+ if (!id || typeof id !== "string")
88
+ throw new Error(`Missing required option: ${key}`);
89
+ }
90
+ else if (!id || typeof id !== "string")
96
91
  return undefined;
97
92
  return new Role(this.client, id);
98
93
  }
99
- /**
100
- * Get the value of a mentionable option.
101
- * @param key The name of the option to get the value of.
102
- * @returns The value of the option, or undefined if the option was not provided.
103
- */
104
- async getMentionable(key) {
94
+ async getMentionable(key, required = false) {
105
95
  const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Mentionable)?.value;
106
- if (!id || typeof id !== "string")
96
+ if (required) {
97
+ if (!id || typeof id !== "string")
98
+ throw new Error(`Missing required option: ${key}`);
99
+ }
100
+ else if (!id || typeof id !== "string")
107
101
  return undefined;
108
102
  const user = new User(this.client, id);
109
103
  await user.fetch().catch(() => {