@buape/carbon 0.0.0-beta-20241008010229

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 (245) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -0
  3. package/dist/package.json +34 -0
  4. package/dist/src/abstracts/AnySelectMenu.d.ts +31 -0
  5. package/dist/src/abstracts/AnySelectMenu.d.ts.map +1 -0
  6. package/dist/src/abstracts/AnySelectMenu.js +19 -0
  7. package/dist/src/abstracts/AnySelectMenu.js.map +1 -0
  8. package/dist/src/abstracts/AnySelectMenuInteraction.d.ts +13 -0
  9. package/dist/src/abstracts/AnySelectMenuInteraction.d.ts.map +1 -0
  10. package/dist/src/abstracts/AnySelectMenuInteraction.js +21 -0
  11. package/dist/src/abstracts/AnySelectMenuInteraction.js.map +1 -0
  12. package/dist/src/abstracts/Base.d.ts +10 -0
  13. package/dist/src/abstracts/Base.d.ts.map +1 -0
  14. package/dist/src/abstracts/Base.js +11 -0
  15. package/dist/src/abstracts/Base.js.map +1 -0
  16. package/dist/src/abstracts/BaseChannel.d.ts +45 -0
  17. package/dist/src/abstracts/BaseChannel.d.ts.map +1 -0
  18. package/dist/src/abstracts/BaseChannel.js +68 -0
  19. package/dist/src/abstracts/BaseChannel.js.map +1 -0
  20. package/dist/src/abstracts/BaseCommand.d.ts +58 -0
  21. package/dist/src/abstracts/BaseCommand.d.ts.map +1 -0
  22. package/dist/src/abstracts/BaseCommand.js +72 -0
  23. package/dist/src/abstracts/BaseCommand.js.map +1 -0
  24. package/dist/src/abstracts/BaseComponent.d.ts +34 -0
  25. package/dist/src/abstracts/BaseComponent.d.ts.map +1 -0
  26. package/dist/src/abstracts/BaseComponent.js +30 -0
  27. package/dist/src/abstracts/BaseComponent.js.map +1 -0
  28. package/dist/src/abstracts/BaseComponentInteraction.d.ts +19 -0
  29. package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -0
  30. package/dist/src/abstracts/BaseComponentInteraction.js +42 -0
  31. package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -0
  32. package/dist/src/abstracts/BaseGuildChannel.d.ts +70 -0
  33. package/dist/src/abstracts/BaseGuildChannel.d.ts.map +1 -0
  34. package/dist/src/abstracts/BaseGuildChannel.js +143 -0
  35. package/dist/src/abstracts/BaseGuildChannel.js.map +1 -0
  36. package/dist/src/abstracts/BaseGuildTextChannel.d.ts +46 -0
  37. package/dist/src/abstracts/BaseGuildTextChannel.d.ts.map +1 -0
  38. package/dist/src/abstracts/BaseGuildTextChannel.js +77 -0
  39. package/dist/src/abstracts/BaseGuildTextChannel.js.map +1 -0
  40. package/dist/src/abstracts/BaseInteraction.d.ts +92 -0
  41. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -0
  42. package/dist/src/abstracts/BaseInteraction.js +152 -0
  43. package/dist/src/abstracts/BaseInteraction.js.map +1 -0
  44. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +43 -0
  45. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -0
  46. package/dist/src/abstracts/GuildThreadOnlyChannel.js +69 -0
  47. package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -0
  48. package/dist/src/classes/Button.d.ts +49 -0
  49. package/dist/src/classes/Button.d.ts.map +1 -0
  50. package/dist/src/classes/Button.js +61 -0
  51. package/dist/src/classes/Button.js.map +1 -0
  52. package/dist/src/classes/ChannelSelectMenu.d.ts +15 -0
  53. package/dist/src/classes/ChannelSelectMenu.d.ts.map +1 -0
  54. package/dist/src/classes/ChannelSelectMenu.js +15 -0
  55. package/dist/src/classes/ChannelSelectMenu.js.map +1 -0
  56. package/dist/src/classes/Client.d.ts +180 -0
  57. package/dist/src/classes/Client.d.ts.map +1 -0
  58. package/dist/src/classes/Client.js +263 -0
  59. package/dist/src/classes/Client.js.map +1 -0
  60. package/dist/src/classes/Command.d.ts +33 -0
  61. package/dist/src/classes/Command.d.ts.map +1 -0
  62. package/dist/src/classes/Command.js +31 -0
  63. package/dist/src/classes/Command.js.map +1 -0
  64. package/dist/src/classes/CommandWithSubcommandGroups.d.ts +22 -0
  65. package/dist/src/classes/CommandWithSubcommandGroups.d.ts.map +1 -0
  66. package/dist/src/classes/CommandWithSubcommandGroups.js +31 -0
  67. package/dist/src/classes/CommandWithSubcommandGroups.js.map +1 -0
  68. package/dist/src/classes/CommandWithSubcommands.d.ts +19 -0
  69. package/dist/src/classes/CommandWithSubcommands.d.ts.map +1 -0
  70. package/dist/src/classes/CommandWithSubcommands.js +21 -0
  71. package/dist/src/classes/CommandWithSubcommands.js.map +1 -0
  72. package/dist/src/classes/Embed.d.ts +61 -0
  73. package/dist/src/classes/Embed.d.ts.map +1 -0
  74. package/dist/src/classes/Embed.js +75 -0
  75. package/dist/src/classes/Embed.js.map +1 -0
  76. package/dist/src/classes/MentionableSelectMenu.d.ts +13 -0
  77. package/dist/src/classes/MentionableSelectMenu.d.ts.map +1 -0
  78. package/dist/src/classes/MentionableSelectMenu.js +13 -0
  79. package/dist/src/classes/MentionableSelectMenu.js.map +1 -0
  80. package/dist/src/classes/Modal.d.ts +21 -0
  81. package/dist/src/classes/Modal.d.ts.map +1 -0
  82. package/dist/src/classes/Modal.js +14 -0
  83. package/dist/src/classes/Modal.js.map +1 -0
  84. package/dist/src/classes/RoleSelectMenu.d.ts +13 -0
  85. package/dist/src/classes/RoleSelectMenu.d.ts.map +1 -0
  86. package/dist/src/classes/RoleSelectMenu.js +13 -0
  87. package/dist/src/classes/RoleSelectMenu.js.map +1 -0
  88. package/dist/src/classes/Row.d.ts +25 -0
  89. package/dist/src/classes/Row.d.ts.map +1 -0
  90. package/dist/src/classes/Row.js +40 -0
  91. package/dist/src/classes/Row.js.map +1 -0
  92. package/dist/src/classes/StringSelectMenu.d.ts +13 -0
  93. package/dist/src/classes/StringSelectMenu.d.ts.map +1 -0
  94. package/dist/src/classes/StringSelectMenu.js +12 -0
  95. package/dist/src/classes/StringSelectMenu.js.map +1 -0
  96. package/dist/src/classes/TextInput.d.ts +40 -0
  97. package/dist/src/classes/TextInput.d.ts.map +1 -0
  98. package/dist/src/classes/TextInput.js +44 -0
  99. package/dist/src/classes/TextInput.js.map +1 -0
  100. package/dist/src/classes/UserSelectMenu.d.ts +13 -0
  101. package/dist/src/classes/UserSelectMenu.d.ts.map +1 -0
  102. package/dist/src/classes/UserSelectMenu.js +13 -0
  103. package/dist/src/classes/UserSelectMenu.js.map +1 -0
  104. package/dist/src/factories/channelFactory.d.ts +13 -0
  105. package/dist/src/factories/channelFactory.d.ts.map +1 -0
  106. package/dist/src/factories/channelFactory.js +39 -0
  107. package/dist/src/factories/channelFactory.js.map +1 -0
  108. package/dist/src/index.d.ts +55 -0
  109. package/dist/src/index.d.ts.map +1 -0
  110. package/dist/src/index.js +61 -0
  111. package/dist/src/index.js.map +1 -0
  112. package/dist/src/internals/AutocompleteInteraction.d.ts +33 -0
  113. package/dist/src/internals/AutocompleteInteraction.d.ts.map +1 -0
  114. package/dist/src/internals/AutocompleteInteraction.js +61 -0
  115. package/dist/src/internals/AutocompleteInteraction.js.map +1 -0
  116. package/dist/src/internals/ButtonInteraction.d.ts +9 -0
  117. package/dist/src/internals/ButtonInteraction.d.ts.map +1 -0
  118. package/dist/src/internals/ButtonInteraction.js +18 -0
  119. package/dist/src/internals/ButtonInteraction.js.map +1 -0
  120. package/dist/src/internals/ChannelSelectMenuInteraction.d.ts +8 -0
  121. package/dist/src/internals/ChannelSelectMenuInteraction.d.ts.map +1 -0
  122. package/dist/src/internals/ChannelSelectMenuInteraction.js +11 -0
  123. package/dist/src/internals/ChannelSelectMenuInteraction.js.map +1 -0
  124. package/dist/src/internals/CommandHandler.d.ts +12 -0
  125. package/dist/src/internals/CommandHandler.d.ts.map +1 -0
  126. package/dist/src/internals/CommandHandler.js +89 -0
  127. package/dist/src/internals/CommandHandler.js.map +1 -0
  128. package/dist/src/internals/CommandInteraction.d.ts +16 -0
  129. package/dist/src/internals/CommandInteraction.d.ts.map +1 -0
  130. package/dist/src/internals/CommandInteraction.js +23 -0
  131. package/dist/src/internals/CommandInteraction.js.map +1 -0
  132. package/dist/src/internals/ComponentHandler.d.ts +17 -0
  133. package/dist/src/internals/ComponentHandler.d.ts.map +1 -0
  134. package/dist/src/internals/ComponentHandler.js +75 -0
  135. package/dist/src/internals/ComponentHandler.js.map +1 -0
  136. package/dist/src/internals/FieldsHandler.d.ts +27 -0
  137. package/dist/src/internals/FieldsHandler.d.ts.map +1 -0
  138. package/dist/src/internals/FieldsHandler.js +37 -0
  139. package/dist/src/internals/FieldsHandler.js.map +1 -0
  140. package/dist/src/internals/MentionableSelectMenuInteraction.d.ts +9 -0
  141. package/dist/src/internals/MentionableSelectMenuInteraction.d.ts.map +1 -0
  142. package/dist/src/internals/MentionableSelectMenuInteraction.js +15 -0
  143. package/dist/src/internals/MentionableSelectMenuInteraction.js.map +1 -0
  144. package/dist/src/internals/ModalHandler.d.ts +17 -0
  145. package/dist/src/internals/ModalHandler.d.ts.map +1 -0
  146. package/dist/src/internals/ModalHandler.js +25 -0
  147. package/dist/src/internals/ModalHandler.js.map +1 -0
  148. package/dist/src/internals/ModalInteraction.d.ts +22 -0
  149. package/dist/src/internals/ModalInteraction.d.ts.map +1 -0
  150. package/dist/src/internals/ModalInteraction.js +42 -0
  151. package/dist/src/internals/ModalInteraction.js.map +1 -0
  152. package/dist/src/internals/OptionsHandler.d.ts +82 -0
  153. package/dist/src/internals/OptionsHandler.d.ts.map +1 -0
  154. package/dist/src/internals/OptionsHandler.js +127 -0
  155. package/dist/src/internals/OptionsHandler.js.map +1 -0
  156. package/dist/src/internals/RoleSelectMenuInteraction.d.ts +9 -0
  157. package/dist/src/internals/RoleSelectMenuInteraction.d.ts.map +1 -0
  158. package/dist/src/internals/RoleSelectMenuInteraction.js +14 -0
  159. package/dist/src/internals/RoleSelectMenuInteraction.js.map +1 -0
  160. package/dist/src/internals/StringSelectMenuInteraction.d.ts +9 -0
  161. package/dist/src/internals/StringSelectMenuInteraction.d.ts.map +1 -0
  162. package/dist/src/internals/StringSelectMenuInteraction.js +14 -0
  163. package/dist/src/internals/StringSelectMenuInteraction.js.map +1 -0
  164. package/dist/src/internals/UserSelectMenuInteraction.d.ts +9 -0
  165. package/dist/src/internals/UserSelectMenuInteraction.d.ts.map +1 -0
  166. package/dist/src/internals/UserSelectMenuInteraction.js +14 -0
  167. package/dist/src/internals/UserSelectMenuInteraction.js.map +1 -0
  168. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts +49 -0
  169. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts.map +1 -0
  170. package/dist/src/plugins/linked-roles/LinkedRoles.js +164 -0
  171. package/dist/src/plugins/linked-roles/LinkedRoles.js.map +1 -0
  172. package/dist/src/plugins/linked-roles/index.d.ts +3 -0
  173. package/dist/src/plugins/linked-roles/index.d.ts.map +1 -0
  174. package/dist/src/plugins/linked-roles/index.js +3 -0
  175. package/dist/src/plugins/linked-roles/index.js.map +1 -0
  176. package/dist/src/plugins/linked-roles/types.d.ts +88 -0
  177. package/dist/src/plugins/linked-roles/types.d.ts.map +1 -0
  178. package/dist/src/plugins/linked-roles/types.js +39 -0
  179. package/dist/src/plugins/linked-roles/types.js.map +1 -0
  180. package/dist/src/structures/DmChannel.d.ts +19 -0
  181. package/dist/src/structures/DmChannel.d.ts.map +1 -0
  182. package/dist/src/structures/DmChannel.js +25 -0
  183. package/dist/src/structures/DmChannel.js.map +1 -0
  184. package/dist/src/structures/GroupDmChannel.d.ts +65 -0
  185. package/dist/src/structures/GroupDmChannel.d.ts.map +1 -0
  186. package/dist/src/structures/GroupDmChannel.js +116 -0
  187. package/dist/src/structures/GroupDmChannel.js.map +1 -0
  188. package/dist/src/structures/Guild.d.ts +77 -0
  189. package/dist/src/structures/Guild.d.ts.map +1 -0
  190. package/dist/src/structures/Guild.js +156 -0
  191. package/dist/src/structures/Guild.js.map +1 -0
  192. package/dist/src/structures/GuildAnnouncementChannel.d.ts +11 -0
  193. package/dist/src/structures/GuildAnnouncementChannel.d.ts.map +1 -0
  194. package/dist/src/structures/GuildAnnouncementChannel.js +15 -0
  195. package/dist/src/structures/GuildAnnouncementChannel.js.map +1 -0
  196. package/dist/src/structures/GuildCategoryChannel.d.ts +13 -0
  197. package/dist/src/structures/GuildCategoryChannel.d.ts.map +1 -0
  198. package/dist/src/structures/GuildCategoryChannel.js +13 -0
  199. package/dist/src/structures/GuildCategoryChannel.js.map +1 -0
  200. package/dist/src/structures/GuildForumChannel.d.ts +14 -0
  201. package/dist/src/structures/GuildForumChannel.d.ts.map +1 -0
  202. package/dist/src/structures/GuildForumChannel.js +15 -0
  203. package/dist/src/structures/GuildForumChannel.js.map +1 -0
  204. package/dist/src/structures/GuildMediaChannel.d.ts +9 -0
  205. package/dist/src/structures/GuildMediaChannel.d.ts.map +1 -0
  206. package/dist/src/structures/GuildMediaChannel.js +7 -0
  207. package/dist/src/structures/GuildMediaChannel.js.map +1 -0
  208. package/dist/src/structures/GuildMember.d.ts +111 -0
  209. package/dist/src/structures/GuildMember.d.ts.map +1 -0
  210. package/dist/src/structures/GuildMember.js +224 -0
  211. package/dist/src/structures/GuildMember.js.map +1 -0
  212. package/dist/src/structures/GuildStageOrVoiceChannel.d.ts +31 -0
  213. package/dist/src/structures/GuildStageOrVoiceChannel.d.ts.map +1 -0
  214. package/dist/src/structures/GuildStageOrVoiceChannel.js +43 -0
  215. package/dist/src/structures/GuildStageOrVoiceChannel.js.map +1 -0
  216. package/dist/src/structures/GuildTextChannel.d.ts +15 -0
  217. package/dist/src/structures/GuildTextChannel.d.ts.map +1 -0
  218. package/dist/src/structures/GuildTextChannel.js +20 -0
  219. package/dist/src/structures/GuildTextChannel.js.map +1 -0
  220. package/dist/src/structures/GuildThreadChannel.d.ts +90 -0
  221. package/dist/src/structures/GuildThreadChannel.d.ts.map +1 -0
  222. package/dist/src/structures/GuildThreadChannel.js +165 -0
  223. package/dist/src/structures/GuildThreadChannel.js.map +1 -0
  224. package/dist/src/structures/Message.d.ts +153 -0
  225. package/dist/src/structures/Message.d.ts.map +1 -0
  226. package/dist/src/structures/Message.js +296 -0
  227. package/dist/src/structures/Message.js.map +1 -0
  228. package/dist/src/structures/Role.d.ts +108 -0
  229. package/dist/src/structures/Role.d.ts.map +1 -0
  230. package/dist/src/structures/Role.js +220 -0
  231. package/dist/src/structures/Role.js.map +1 -0
  232. package/dist/src/structures/User.d.ts +82 -0
  233. package/dist/src/structures/User.d.ts.map +1 -0
  234. package/dist/src/structures/User.js +166 -0
  235. package/dist/src/structures/User.js.map +1 -0
  236. package/dist/src/types.d.ts +37 -0
  237. package/dist/src/types.d.ts.map +1 -0
  238. package/dist/src/types.js +2 -0
  239. package/dist/src/types.js.map +1 -0
  240. package/dist/src/utils.d.ts +22 -0
  241. package/dist/src/utils.d.ts.map +1 -0
  242. package/dist/src/utils.js +79 -0
  243. package/dist/src/utils.js.map +1 -0
  244. package/dist/tsconfig.tsbuildinfo +1 -0
  245. package/package.json +34 -0
@@ -0,0 +1,82 @@
1
+ import { type APIApplicationCommandInteractionDataBasicOption, type APIApplicationCommandInteractionDataOption } from "discord-api-types/v10";
2
+ import { Base } from "../abstracts/Base.js";
3
+ import { type Client, Role, User, channelFactory } from "../index.js";
4
+ export type RawOptions = {
5
+ [key: string]: APIApplicationCommandInteractionDataBasicOption["value"] | undefined;
6
+ };
7
+ /**
8
+ * This class is used to parse the options of a command, and provide errors for any missing or invalid options.
9
+ * It is used internally by the Command class.
10
+ */
11
+ export declare class OptionsHandler extends Base {
12
+ /**
13
+ * The raw options that were in the interaction data, before they were parsed.
14
+ */
15
+ readonly raw: APIApplicationCommandInteractionDataBasicOption[];
16
+ constructor(client: Client, options: APIApplicationCommandInteractionDataOption[]);
17
+ /**
18
+ * Get the value of a string option.
19
+ * @param key The name of the option to get the value of.
20
+ * @param required Whether the option is required.
21
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
22
+ */
23
+ getString(key: string, required?: false): string | undefined;
24
+ getString(key: string, required: true): string;
25
+ /**
26
+ * Get the value of an integer option.
27
+ * @param key The name of the option to get the value of.
28
+ * @param required Whether the option is required.
29
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
30
+ */
31
+ getInteger(key: string, required?: false): number | undefined;
32
+ getInteger(key: string, required: true): number;
33
+ /**
34
+ * Get the value of a number option.
35
+ * @param key The name of the option to get the value of.
36
+ * @param required Whether the option is required.
37
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
38
+ */
39
+ getNumber(key: string, required?: false): number | undefined;
40
+ getNumber(key: string, required: true): number;
41
+ /**
42
+ * Get the value of a boolean option.
43
+ * @param key The name of the option to get the value of.
44
+ * @param required Whether the option is required.
45
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
46
+ */
47
+ getBoolean(key: string, required?: false): boolean | undefined;
48
+ getBoolean(key: string, required: true): boolean;
49
+ /**
50
+ * Get the value of a user option.
51
+ * @param key The name of the option to get the value of.
52
+ * @param required Whether the option is required.
53
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
54
+ */
55
+ getUser(key: string, required?: false): User<true> | undefined;
56
+ getUser(key: string, required: true): User<true>;
57
+ /**
58
+ * Get the value of a channel option.
59
+ * @param key The name of the option to get the value of.
60
+ * @param required Whether the option is required.
61
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
62
+ */
63
+ getChannel(key: string, required?: false): Promise<ReturnType<typeof channelFactory> | undefined>;
64
+ getChannel(key: string, required: true): Promise<ReturnType<typeof channelFactory>>;
65
+ /**
66
+ * Get the value of a role option.
67
+ * @param key The name of the option to get the value of.
68
+ * @param required Whether the option is required.
69
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
70
+ */
71
+ getRole(key: string, required?: false): Role<true> | undefined;
72
+ getRole(key: string, required: true): Role<true>;
73
+ /**
74
+ * Get the value of a mentionable option.
75
+ * @param key The name of the option to get the value of.
76
+ * @param required Whether the option is required.
77
+ * @returns The value of the option, or undefined if the option was not provided and it is not required.
78
+ */
79
+ getMentionable(key: string, required?: false): Promise<User | Role<true> | undefined>;
80
+ getMentionable(key: string, required: true): Promise<User | Role<true>>;
81
+ }
82
+ //# sourceMappingURL=OptionsHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionsHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,+CAA+C,EACpD,KAAK,0CAA0C,EAI/C,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;gBAG9D,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,0CAA0C,EAAE;IAuBtD;;;;;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,CAAC,IAAI,CAAC,GAAG,SAAS;IAC9D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAYvD;;;;;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,CAAC,IAAI,CAAC,GAAG,SAAS;IAC9D,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IAYvD;;;;;OAKG;IACU,cAAc,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,KAAK,GACd,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5B,cAAc,CAC1B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,IAAI,GACZ,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;CAsB7B"}
@@ -0,0 +1,127 @@
1
+ import { ApplicationCommandOptionType, Routes } from "discord-api-types/v10";
2
+ import { Base } from "../abstracts/Base.js";
3
+ import { Role, User, channelFactory } from "../index.js";
4
+ /**
5
+ * This class is used to parse the options of a command, and provide errors for any missing or invalid options.
6
+ * It is used internally by the Command class.
7
+ */
8
+ export class OptionsHandler extends Base {
9
+ /**
10
+ * The raw options that were in the interaction data, before they were parsed.
11
+ */
12
+ raw;
13
+ constructor(client, options) {
14
+ super(client);
15
+ this.raw = [];
16
+ for (const option of options) {
17
+ if (option.type === ApplicationCommandOptionType.Subcommand) {
18
+ for (const subOption of option.options ?? []) {
19
+ this.raw.push(subOption);
20
+ }
21
+ }
22
+ else if (option.type === ApplicationCommandOptionType.SubcommandGroup) {
23
+ for (const subOption of option.options ?? []) {
24
+ if (subOption.options) {
25
+ for (const subSubOption of subOption.options ?? []) {
26
+ this.raw.push(subSubOption);
27
+ }
28
+ }
29
+ }
30
+ }
31
+ else {
32
+ this.raw.push(option);
33
+ }
34
+ }
35
+ }
36
+ getString(key, required = false) {
37
+ const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.String)?.value;
38
+ if (required) {
39
+ if (!value || typeof value !== "string")
40
+ throw new Error(`Missing required option: ${key}`);
41
+ }
42
+ else if (!value || typeof value !== "string")
43
+ return undefined;
44
+ return value;
45
+ }
46
+ getInteger(key, required = false) {
47
+ const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Integer)?.value;
48
+ if (required) {
49
+ if (!value || typeof value !== "number" || !Number.isSafeInteger(value))
50
+ throw new Error(`Missing required option: ${key}`);
51
+ }
52
+ else if (!value ||
53
+ typeof value !== "number" ||
54
+ !Number.isSafeInteger(value))
55
+ return undefined;
56
+ return value;
57
+ }
58
+ getNumber(key, required = false) {
59
+ const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Number)?.value;
60
+ if (required) {
61
+ if (!value || typeof value !== "number")
62
+ throw new Error(`Missing required option: ${key}`);
63
+ }
64
+ else if (!value || typeof value !== "number")
65
+ return undefined;
66
+ return value;
67
+ }
68
+ getBoolean(key, required = false) {
69
+ const value = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Boolean)?.value;
70
+ if (required) {
71
+ if (!value || typeof value !== "boolean")
72
+ throw new Error(`Missing required option: ${key}`);
73
+ }
74
+ else if (!value || typeof value !== "boolean")
75
+ return undefined;
76
+ return value;
77
+ }
78
+ getUser(key, required = false) {
79
+ const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.User)?.value;
80
+ if (required) {
81
+ if (!id || typeof id !== "string")
82
+ throw new Error(`Missing required option: ${key}`);
83
+ }
84
+ else if (!id || typeof id !== "string")
85
+ return undefined;
86
+ return new User(this.client, id);
87
+ }
88
+ async getChannel(key, required = false) {
89
+ const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Channel)?.value;
90
+ if (required) {
91
+ if (!id || typeof id !== "string")
92
+ throw new Error(`Missing required option: ${key}`);
93
+ }
94
+ else if (!id || typeof id !== "string")
95
+ return undefined;
96
+ const data = (await this.client.rest.get(Routes.channel(id)));
97
+ return channelFactory(this.client, data);
98
+ }
99
+ getRole(key, required = false) {
100
+ const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Role)?.value;
101
+ if (required) {
102
+ if (!id || typeof id !== "string")
103
+ throw new Error(`Missing required option: ${key}`);
104
+ }
105
+ else if (!id || typeof id !== "string")
106
+ return undefined;
107
+ return new Role(this.client, id);
108
+ }
109
+ async getMentionable(key, required = false) {
110
+ const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Mentionable)?.value;
111
+ if (required) {
112
+ if (!id || typeof id !== "string")
113
+ throw new Error(`Missing required option: ${key}`);
114
+ }
115
+ else if (!id || typeof id !== "string")
116
+ return undefined;
117
+ try {
118
+ const user = new User(this.client, id);
119
+ await user.fetch();
120
+ return user;
121
+ }
122
+ catch {
123
+ return new Role(this.client, id);
124
+ }
125
+ }
126
+ }
127
+ //# sourceMappingURL=OptionsHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptionsHandler.js","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type APIMessageComponentSelectMenuInteraction } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ import type { InteractionDefaults } from "../abstracts/BaseInteraction.js";
4
+ import type { Client } from "../classes/Client.js";
5
+ export declare class RoleSelectMenuInteraction extends AnySelectMenuInteraction {
6
+ constructor(client: Client, data: APIMessageComponentSelectMenuInteraction, defaults: InteractionDefaults);
7
+ get values(): string[];
8
+ }
9
+ //# sourceMappingURL=RoleSelectMenuInteraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleSelectMenuInteraction.d.ts","sourceRoot":"","sources":["../../../src/internals/RoleSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,wCAAwC,EAG7C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,qBAAa,yBAA0B,SAAQ,wBAAwB;gBAErE,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,mBAAmB;IAQ9B,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACD"}
@@ -0,0 +1,14 @@
1
+ import { ComponentType } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ export class RoleSelectMenuInteraction extends AnySelectMenuInteraction {
4
+ constructor(client, data, defaults) {
5
+ super(client, data, defaults);
6
+ if (data.data.component_type !== ComponentType.RoleSelect) {
7
+ throw new Error("Invalid component type was used to create this class");
8
+ }
9
+ }
10
+ get values() {
11
+ return this.rawData.data.values;
12
+ }
13
+ }
14
+ //# sourceMappingURL=RoleSelectMenuInteraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoleSelectMenuInteraction.js","sourceRoot":"","sources":["../../../src/internals/RoleSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,aAAa,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAInF,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACtE,YACC,MAAc,EACd,IAA8C,EAC9C,QAA6B;QAE7B,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACxE,CAAC;IACF,CAAC;IAED,IAAI,MAAM;QACT,OAAQ,IAAI,CAAC,OAAO,CAAC,IAA4C,CAAC,MAAM,CAAA;IACzE,CAAC;CACD"}
@@ -0,0 +1,9 @@
1
+ import { type APIMessageComponentSelectMenuInteraction } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ import type { InteractionDefaults } from "../abstracts/BaseInteraction.js";
4
+ import type { Client } from "../classes/Client.js";
5
+ export declare class StringSelectMenuInteraction extends AnySelectMenuInteraction {
6
+ constructor(client: Client, data: APIMessageComponentSelectMenuInteraction, defaults: InteractionDefaults);
7
+ get values(): string[];
8
+ }
9
+ //# sourceMappingURL=StringSelectMenuInteraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringSelectMenuInteraction.d.ts","sourceRoot":"","sources":["../../../src/internals/StringSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,wCAAwC,EAG7C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,qBAAa,2BAA4B,SAAQ,wBAAwB;gBAEvE,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,mBAAmB;IAQ9B,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACD"}
@@ -0,0 +1,14 @@
1
+ import { ComponentType } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ export class StringSelectMenuInteraction extends AnySelectMenuInteraction {
4
+ constructor(client, data, defaults) {
5
+ super(client, data, defaults);
6
+ if (data.data.component_type !== ComponentType.StringSelect) {
7
+ throw new Error("Invalid component type was used to create this class");
8
+ }
9
+ }
10
+ get values() {
11
+ return this.rawData.data.values;
12
+ }
13
+ }
14
+ //# sourceMappingURL=StringSelectMenuInteraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringSelectMenuInteraction.js","sourceRoot":"","sources":["../../../src/internals/StringSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,aAAa,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAInF,MAAM,OAAO,2BAA4B,SAAQ,wBAAwB;IACxE,YACC,MAAc,EACd,IAA8C,EAC9C,QAA6B;QAE7B,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,aAAa,CAAC,YAAY,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACxE,CAAC;IACF,CAAC;IAED,IAAI,MAAM;QACT,OAAQ,IAAI,CAAC,OAAO,CAAC,IAA8C,CAAC,MAAM,CAAA;IAC3E,CAAC;CACD"}
@@ -0,0 +1,9 @@
1
+ import { type APIMessageComponentSelectMenuInteraction } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ import type { InteractionDefaults } from "../abstracts/BaseInteraction.js";
4
+ import type { Client } from "../classes/Client.js";
5
+ export declare class UserSelectMenuInteraction extends AnySelectMenuInteraction {
6
+ constructor(client: Client, data: APIMessageComponentSelectMenuInteraction, defaults: InteractionDefaults);
7
+ get values(): string[];
8
+ }
9
+ //# sourceMappingURL=UserSelectMenuInteraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSelectMenuInteraction.d.ts","sourceRoot":"","sources":["../../../src/internals/UserSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,wCAAwC,EAG7C,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAElD,qBAAa,yBAA0B,SAAQ,wBAAwB;gBAErE,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wCAAwC,EAC9C,QAAQ,EAAE,mBAAmB;IAQ9B,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;CACD"}
@@ -0,0 +1,14 @@
1
+ import { ComponentType } from "discord-api-types/v10";
2
+ import { AnySelectMenuInteraction } from "../abstracts/AnySelectMenuInteraction.js";
3
+ export class UserSelectMenuInteraction extends AnySelectMenuInteraction {
4
+ constructor(client, data, defaults) {
5
+ super(client, data, defaults);
6
+ if (data.data.component_type !== ComponentType.UserSelect) {
7
+ throw new Error("Invalid component type was used to create this class");
8
+ }
9
+ }
10
+ get values() {
11
+ return this.rawData.data.values;
12
+ }
13
+ }
14
+ //# sourceMappingURL=UserSelectMenuInteraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserSelectMenuInteraction.js","sourceRoot":"","sources":["../../../src/internals/UserSelectMenuInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,aAAa,EACb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAInF,MAAM,OAAO,yBAA0B,SAAQ,wBAAwB;IACtE,YACC,MAAc,EACd,IAA8C,EAC9C,QAA6B;QAE7B,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,aAAa,CAAC,UAAU,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACxE,CAAC;IACF,CAAC;IAED,IAAI,MAAM;QACT,OAAQ,IAAI,CAAC,OAAO,CAAC,IAA4C,CAAC,MAAM,CAAA;IACzE,CAAC;CACD"}
@@ -0,0 +1,49 @@
1
+ import type { Client } from "../../classes/Client.js";
2
+ import { type LinkedRolesOptions } from "./types.js";
3
+ /**
4
+ * This class is the main class that is used for the linked roles feature of Carbon.
5
+ * It handles all the additional routes and oauth.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { Client, LinkedRoles } from "@buape/carbon"
10
+ *
11
+ * const client = new Client({
12
+ * clientId: "12345678901234567890",
13
+ * publicKey: "c1a2f941ae8ce6d776f7704d0bb3d46b863e21fda491cdb2bdba6b8bc5fe7269",
14
+ * token: "MTA4NjEwNTYxMDUxMDE1NTg1Nw.GNt-U8.OSHy-g-5FlfESnu3Z9MEEMJLHiRthXajiXNwiE"
15
+ * })
16
+ *
17
+ * const allStaff = ["439223656200273932"]
18
+ *
19
+ * const linkedRoles = new LinkedRoles(client, {
20
+ * clientSecret: "Bb7aZcvRN-BhrhY2qrUO6QzOK4SeqonG",
21
+ * baseUrl: "https://example.com",
22
+ * metadata: [
23
+ * {
24
+ * key: "is_staff",
25
+ * name: "Verified Staff",
26
+ * description: "Whether the user is a verified staff member",
27
+ * type: ApplicationRoleConnectionMetadataType.BooleanEqual
28
+ * },
29
+ * ],
30
+ * metadataCheckers: {
31
+ * is_staff: async (userId) => {
32
+ * if (allStaff.includes(userId)) return true
33
+ * return false
34
+ * }
35
+ * }
36
+ * })
37
+ * ```
38
+ */
39
+ export declare class LinkedRoles {
40
+ client: Client;
41
+ options: Required<LinkedRolesOptions>;
42
+ constructor(client: Client, options: LinkedRolesOptions);
43
+ private setupRoutes;
44
+ private getMetadataFromCheckers;
45
+ private getOAuthTokens;
46
+ private updateMetadata;
47
+ private setMetadata;
48
+ }
49
+ //# sourceMappingURL=LinkedRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkedRoles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAA;AAUnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBAAa,WAAW;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAA;gBAEzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;IAUvD,OAAO,CAAC,WAAW;YA4CL,uBAAuB;YAiCvB,cAAc;YA4Bd,cAAc;YAuBd,WAAW;CAoBzB"}
@@ -0,0 +1,164 @@
1
+ import { ApplicationRoleConnectionMetadataType } from "./types.js";
2
+ /**
3
+ * This class is the main class that is used for the linked roles feature of Carbon.
4
+ * It handles all the additional routes and oauth.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * import { Client, LinkedRoles } from "@buape/carbon"
9
+ *
10
+ * const client = new Client({
11
+ * clientId: "12345678901234567890",
12
+ * publicKey: "c1a2f941ae8ce6d776f7704d0bb3d46b863e21fda491cdb2bdba6b8bc5fe7269",
13
+ * token: "MTA4NjEwNTYxMDUxMDE1NTg1Nw.GNt-U8.OSHy-g-5FlfESnu3Z9MEEMJLHiRthXajiXNwiE"
14
+ * })
15
+ *
16
+ * const allStaff = ["439223656200273932"]
17
+ *
18
+ * const linkedRoles = new LinkedRoles(client, {
19
+ * clientSecret: "Bb7aZcvRN-BhrhY2qrUO6QzOK4SeqonG",
20
+ * baseUrl: "https://example.com",
21
+ * metadata: [
22
+ * {
23
+ * key: "is_staff",
24
+ * name: "Verified Staff",
25
+ * description: "Whether the user is a verified staff member",
26
+ * type: ApplicationRoleConnectionMetadataType.BooleanEqual
27
+ * },
28
+ * ],
29
+ * metadataCheckers: {
30
+ * is_staff: async (userId) => {
31
+ * if (allStaff.includes(userId)) return true
32
+ * return false
33
+ * }
34
+ * }
35
+ * })
36
+ * ```
37
+ */
38
+ export class LinkedRoles {
39
+ client;
40
+ options;
41
+ constructor(client, options) {
42
+ this.client = client;
43
+ this.options = { ...options };
44
+ this.setupRoutes();
45
+ this.setMetadata(this.options.metadata);
46
+ console.log(`Linked roles initialized\nRedirect URL: ${this.options.baseUrl}/connect/callback\nVerification URL: ${this.options.baseUrl}/connect`);
47
+ }
48
+ setupRoutes() {
49
+ this.client.router.get("/connect", () => {
50
+ const response = new Response(null, {
51
+ status: 302
52
+ });
53
+ response.headers.set("Location", `https://discord.com/oauth2/authorize?client_id=${this.client.options.clientId}&redirect_uri=${encodeURIComponent(`${this.options.baseUrl}/connect/callback`)}&response_type=code&scope=identify+role_connections.write&prompt=none`);
54
+ return response;
55
+ });
56
+ this.client.router.get("/connect/callback", async (req) => {
57
+ try {
58
+ const code = req.query.code;
59
+ const tokens = await this.getOAuthTokens(code);
60
+ const authData = await (await fetch("https://discord.com/api/v10/oauth2/@me", {
61
+ headers: {
62
+ Authorization: `Bearer ${tokens.access_token}`
63
+ }
64
+ })).json();
65
+ if (!authData.user)
66
+ return new Response("", {
67
+ status: 307,
68
+ headers: {
69
+ Location: `${this.options.baseUrl}/connect`
70
+ }
71
+ });
72
+ const newMetadata = await this.getMetadataFromCheckers(authData.user.id);
73
+ await this.updateMetadata(authData.user?.id, newMetadata, tokens);
74
+ return new Response("You can now close this tab.");
75
+ }
76
+ catch (e) {
77
+ console.error(e);
78
+ return new Response("Error", { status: 500 });
79
+ }
80
+ });
81
+ }
82
+ async getMetadataFromCheckers(userId) {
83
+ const result = {};
84
+ for (const metadata of this.options.metadata) {
85
+ const checker = this.options.metadataCheckers[metadata.key];
86
+ if (!checker)
87
+ throw new Error(`You did not provide a checker for ${metadata.key}`);
88
+ const value = await checker(userId);
89
+ switch (metadata.type) {
90
+ case ApplicationRoleConnectionMetadataType.BooleanEqual:
91
+ case ApplicationRoleConnectionMetadataType.BooleanNotEqual:
92
+ if (typeof value !== "boolean")
93
+ throw new Error(`Expected boolean for ${metadata.key}`);
94
+ break;
95
+ case ApplicationRoleConnectionMetadataType.DatetimeGreaterThanOrEqual:
96
+ case ApplicationRoleConnectionMetadataType.DatetimeLessThanOrEqual:
97
+ if (typeof value !== "number")
98
+ throw new Error(`Expected number for ${metadata.key}`);
99
+ break;
100
+ case ApplicationRoleConnectionMetadataType.IntegerEqual:
101
+ case ApplicationRoleConnectionMetadataType.IntegerNotEqual:
102
+ case ApplicationRoleConnectionMetadataType.IntegerGreaterThanOrEqual:
103
+ case ApplicationRoleConnectionMetadataType.IntegerLessThanOrEqual:
104
+ if (!(typeof value === "number" && Number.isSafeInteger(value)))
105
+ throw new Error(`Expected integer for ${metadata.key}`);
106
+ break;
107
+ default:
108
+ throw new Error(`Unknown metadata type ${metadata.type}`);
109
+ }
110
+ result[metadata.key] = value;
111
+ }
112
+ return result;
113
+ }
114
+ async getOAuthTokens(code) {
115
+ const url = "https://discord.com/api/v10/oauth2/token";
116
+ const body = new URLSearchParams({
117
+ client_id: this.client.options.clientId,
118
+ client_secret: this.options.clientSecret,
119
+ grant_type: "authorization_code",
120
+ code,
121
+ redirect_uri: `${this.options.baseUrl}/connect/callback`
122
+ });
123
+ const response = await fetch(url, {
124
+ body,
125
+ method: "POST",
126
+ headers: {
127
+ "Content-Type": "application/x-www-form-urlencoded"
128
+ }
129
+ });
130
+ if (response.ok) {
131
+ const data = await response.json();
132
+ return data;
133
+ }
134
+ throw new Error(`Error fetching OAuth tokens: [${response.status}] ${JSON.stringify(await response.json())}`);
135
+ }
136
+ async updateMetadata(userId, metadata, tokens) {
137
+ const url = `https://discord.com/api/v10/users/@me/applications/${this.client.options.clientId}/role-connection`;
138
+ const response = await fetch(url, {
139
+ method: "PUT",
140
+ body: JSON.stringify({ metadata }),
141
+ headers: {
142
+ Authorization: `Bearer ${tokens.access_token}`,
143
+ "Content-Type": "application/json"
144
+ }
145
+ });
146
+ if (!response.ok) {
147
+ throw new Error(`Error pushing discord metadata for ${userId}: [${response.status}] ${JSON.stringify(await response.json())}`);
148
+ }
149
+ }
150
+ async setMetadata(data) {
151
+ const response = await fetch(`https://discord.com/api/v10/applications/${this.client.options.clientId}/role-connections/metadata`, {
152
+ method: "PUT",
153
+ body: JSON.stringify(data),
154
+ headers: {
155
+ "Content-Type": "application/json",
156
+ Authorization: `Bot ${this.client.options.token}`
157
+ }
158
+ });
159
+ if (!response.ok) {
160
+ throw new Error(`Error pushing discord metadata: [${response.status}] ${JSON.stringify(await response.json())}`);
161
+ }
162
+ }
163
+ }
164
+ //# sourceMappingURL=LinkedRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkedRoles.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from "./LinkedRoles.js";
2
+ export * from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./LinkedRoles.js";
2
+ export * from "./types.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,YAAY,CAAA"}