@buape/carbon 0.11.0 → 0.13.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.
- package/README.md +1 -1
- package/dist/package.json +3 -3
- package/dist/src/abstracts/AnySelectMenu.d.ts +7 -0
- package/dist/src/abstracts/AnySelectMenu.d.ts.map +1 -1
- package/dist/src/abstracts/AnySelectMenu.js +8 -0
- package/dist/src/abstracts/AnySelectMenu.js.map +1 -1
- package/dist/src/abstracts/BaseGuildChannel.d.ts +1 -2
- package/dist/src/abstracts/BaseGuildChannel.d.ts.map +1 -1
- package/dist/src/abstracts/BaseGuildChannel.js.map +1 -1
- package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
- package/dist/src/abstracts/BaseInteraction.js +1 -1
- package/dist/src/abstracts/BaseInteraction.js.map +1 -1
- package/dist/src/abstracts/BaseListener.d.ts +3 -3
- package/dist/src/abstracts/BaseListener.d.ts.map +1 -1
- package/dist/src/abstracts/BaseListener.js.map +1 -1
- package/dist/src/abstracts/BaseModalComponent.d.ts +10 -2
- package/dist/src/abstracts/BaseModalComponent.d.ts.map +1 -1
- package/dist/src/abstracts/BaseModalComponent.js +1 -1
- package/dist/src/abstracts/BaseModalComponent.js.map +1 -1
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +1 -2
- package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -1
- package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -1
- package/dist/src/adapters/bun/index.d.ts +4 -3
- package/dist/src/adapters/bun/index.d.ts.map +1 -1
- package/dist/src/adapters/bun/index.js +2 -2
- package/dist/src/adapters/bun/index.js.map +1 -1
- package/dist/src/adapters/fetch/index.d.ts +4 -3
- package/dist/src/adapters/fetch/index.d.ts.map +1 -1
- package/dist/src/adapters/fetch/index.js +7 -2
- package/dist/src/adapters/fetch/index.js.map +1 -1
- package/dist/src/adapters/node/index.d.ts +4 -3
- package/dist/src/adapters/node/index.d.ts.map +1 -1
- package/dist/src/adapters/node/index.js +2 -2
- package/dist/src/adapters/node/index.js.map +1 -1
- package/dist/src/classes/ApplicationManager.d.ts +88 -0
- package/dist/src/classes/ApplicationManager.d.ts.map +1 -0
- package/dist/src/classes/ApplicationManager.js +179 -0
- package/dist/src/classes/ApplicationManager.js.map +1 -0
- package/dist/src/classes/Client.d.ts +14 -0
- package/dist/src/classes/Client.d.ts.map +1 -1
- package/dist/src/classes/Client.js +20 -4
- package/dist/src/classes/Client.js.map +1 -1
- package/dist/src/classes/CommandWithSubcommandGroups.d.ts.map +1 -1
- package/dist/src/classes/CommandWithSubcommandGroups.js +4 -8
- package/dist/src/classes/CommandWithSubcommandGroups.js.map +1 -1
- package/dist/src/classes/CommandWithSubcommands.d.ts.map +1 -1
- package/dist/src/classes/CommandWithSubcommands.js +2 -4
- package/dist/src/classes/CommandWithSubcommands.js.map +1 -1
- package/dist/src/classes/Listener.d.ts +13 -0
- package/dist/src/classes/Listener.d.ts.map +1 -1
- package/dist/src/classes/Listener.js +27 -6
- package/dist/src/classes/Listener.js.map +1 -1
- package/dist/src/classes/Modal.d.ts +2 -1
- package/dist/src/classes/Modal.d.ts.map +1 -1
- package/dist/src/classes/Modal.js.map +1 -1
- package/dist/src/classes/RequestClient.d.ts.map +1 -1
- package/dist/src/classes/RequestClient.js +5 -3
- package/dist/src/classes/RequestClient.js.map +1 -1
- package/dist/src/classes/components/Button.d.ts.map +1 -1
- package/dist/src/classes/components/Button.js.map +1 -1
- package/dist/src/classes/components/FileUpload.d.ts +22 -0
- package/dist/src/classes/components/FileUpload.d.ts.map +1 -0
- package/dist/src/classes/components/FileUpload.js +36 -0
- package/dist/src/classes/components/FileUpload.js.map +1 -0
- package/dist/src/classes/components/Label.d.ts +4 -4
- package/dist/src/classes/components/Label.d.ts.map +1 -1
- package/dist/src/classes/components/Label.js +7 -3
- package/dist/src/classes/components/Label.js.map +1 -1
- package/dist/src/classes/components/ModalChannelSelectMenu.d.ts +62 -0
- package/dist/src/classes/components/ModalChannelSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/ModalChannelSelectMenu.js +73 -0
- package/dist/src/classes/components/ModalChannelSelectMenu.js.map +1 -0
- package/dist/src/classes/components/ModalMentionableSelectMenu.d.ts +58 -0
- package/dist/src/classes/components/ModalMentionableSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/ModalMentionableSelectMenu.js +68 -0
- package/dist/src/classes/components/ModalMentionableSelectMenu.js.map +1 -0
- package/dist/src/classes/components/ModalRoleSelectMenu.d.ts +58 -0
- package/dist/src/classes/components/ModalRoleSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/ModalRoleSelectMenu.js +68 -0
- package/dist/src/classes/components/ModalRoleSelectMenu.js.map +1 -0
- package/dist/src/classes/components/ModalStringSelectMenu.d.ts +56 -8
- package/dist/src/classes/components/ModalStringSelectMenu.d.ts.map +1 -1
- package/dist/src/classes/components/ModalStringSelectMenu.js +59 -10
- package/dist/src/classes/components/ModalStringSelectMenu.js.map +1 -1
- package/dist/src/classes/components/ModalUserSelectMenu.d.ts +58 -0
- package/dist/src/classes/components/ModalUserSelectMenu.d.ts.map +1 -0
- package/dist/src/classes/components/ModalUserSelectMenu.js +68 -0
- package/dist/src/classes/components/ModalUserSelectMenu.js.map +1 -0
- package/dist/src/classes/components/TextInput.d.ts +0 -1
- package/dist/src/classes/components/TextInput.d.ts.map +1 -1
- package/dist/src/classes/components/TextInput.js +0 -1
- package/dist/src/classes/components/TextInput.js.map +1 -1
- package/dist/src/errors/DiscordError.d.ts.map +1 -1
- package/dist/src/errors/DiscordError.js.map +1 -1
- package/dist/src/index.d.ts +7 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internals/CommandInteraction.d.ts.map +1 -1
- package/dist/src/internals/CommandInteraction.js +2 -1
- package/dist/src/internals/CommandInteraction.js.map +1 -1
- package/dist/src/internals/ComponentHandler.d.ts.map +1 -1
- package/dist/src/internals/ComponentHandler.js +7 -3
- package/dist/src/internals/ComponentHandler.js.map +1 -1
- package/dist/src/internals/EmojiHandler.d.ts +19 -0
- package/dist/src/internals/EmojiHandler.d.ts.map +1 -0
- package/dist/src/internals/EmojiHandler.js +35 -0
- package/dist/src/internals/EmojiHandler.js.map +1 -0
- package/dist/src/internals/EventHandler.d.ts +2 -2
- package/dist/src/internals/EventHandler.d.ts.map +1 -1
- package/dist/src/internals/EventHandler.js +3 -1
- package/dist/src/internals/EventHandler.js.map +1 -1
- package/dist/src/internals/FieldsHandler.d.ts +49 -16
- package/dist/src/internals/FieldsHandler.d.ts.map +1 -1
- package/dist/src/internals/FieldsHandler.js +110 -26
- package/dist/src/internals/FieldsHandler.js.map +1 -1
- package/dist/src/internals/ModalHandler.d.ts.map +1 -1
- package/dist/src/internals/ModalHandler.js +7 -1
- package/dist/src/internals/ModalHandler.js.map +1 -1
- package/dist/src/internals/OptionsHandler.d.ts +20 -12
- package/dist/src/internals/OptionsHandler.d.ts.map +1 -1
- package/dist/src/internals/OptionsHandler.js +48 -15
- package/dist/src/internals/OptionsHandler.js.map +1 -1
- package/dist/src/plugins/client-manager/ClientManager.d.ts +151 -0
- package/dist/src/plugins/client-manager/ClientManager.d.ts.map +1 -0
- package/dist/src/plugins/client-manager/ClientManager.js +246 -0
- package/dist/src/plugins/client-manager/ClientManager.js.map +1 -0
- package/dist/src/plugins/client-manager/index.d.ts +2 -0
- package/dist/src/plugins/client-manager/index.d.ts.map +1 -0
- package/dist/src/plugins/client-manager/index.js +2 -0
- package/dist/src/plugins/client-manager/index.js.map +1 -0
- package/dist/src/plugins/command-data/CommandDataPlugin.d.ts.map +1 -1
- package/dist/src/plugins/command-data/CommandDataPlugin.js +3 -6
- package/dist/src/plugins/command-data/CommandDataPlugin.js.map +1 -1
- package/dist/src/plugins/gateway/BabyCache.d.ts +7 -0
- package/dist/src/plugins/gateway/BabyCache.d.ts.map +1 -0
- package/dist/src/plugins/gateway/BabyCache.js +6 -0
- package/dist/src/plugins/gateway/BabyCache.js.map +1 -0
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts +4 -2
- package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -1
- package/dist/src/plugins/gateway/GatewayPlugin.js +68 -22
- package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -1
- package/dist/src/plugins/gateway/InteractionEventListener.d.ts +8 -0
- package/dist/src/plugins/gateway/InteractionEventListener.d.ts.map +1 -0
- package/dist/src/plugins/gateway/InteractionEventListener.js +9 -0
- package/dist/src/plugins/gateway/InteractionEventListener.js.map +1 -0
- package/dist/src/plugins/gateway/index.d.ts +1 -0
- package/dist/src/plugins/gateway/index.d.ts.map +1 -1
- package/dist/src/plugins/gateway/index.js +1 -0
- package/dist/src/plugins/gateway/index.js.map +1 -1
- package/dist/src/plugins/gateway/types.d.ts +5 -0
- package/dist/src/plugins/gateway/types.d.ts.map +1 -1
- package/dist/src/plugins/gateway/types.js.map +1 -1
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts +5 -1
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts.map +1 -1
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js +7 -5
- package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js.map +1 -1
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts +0 -1
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts.map +1 -1
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js +0 -4
- package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js.map +1 -1
- package/dist/src/plugins/gateway-forwarder/index.d.ts +1 -1
- package/dist/src/plugins/gateway-forwarder/index.d.ts.map +1 -1
- package/dist/src/plugins/gateway-forwarder/index.js +1 -1
- package/dist/src/plugins/gateway-forwarder/index.js.map +1 -1
- package/dist/src/plugins/multi-app/ApplicationManager.d.ts +120 -0
- package/dist/src/plugins/multi-app/ApplicationManager.d.ts.map +1 -0
- package/dist/src/plugins/multi-app/ApplicationManager.js +207 -0
- package/dist/src/plugins/multi-app/ApplicationManager.js.map +1 -0
- package/dist/src/plugins/multi-app/index.d.ts +2 -0
- package/dist/src/plugins/multi-app/index.d.ts.map +1 -0
- package/dist/src/plugins/multi-app/index.js +2 -0
- package/dist/src/plugins/multi-app/index.js.map +1 -0
- package/dist/src/plugins/paginator/GoToPageModal.d.ts +1 -1
- package/dist/src/plugins/paginator/GoToPageModal.d.ts.map +1 -1
- package/dist/src/plugins/paginator/GoToPageModal.js +2 -2
- package/dist/src/plugins/paginator/GoToPageModal.js.map +1 -1
- package/dist/src/plugins/paginator/Paginator.d.ts.map +1 -1
- package/dist/src/plugins/paginator/Paginator.js +1 -1
- package/dist/src/plugins/paginator/Paginator.js.map +1 -1
- package/dist/src/plugins/paginator/index.d.ts +2 -0
- package/dist/src/plugins/paginator/index.d.ts.map +1 -1
- package/dist/src/plugins/paginator/index.js +2 -0
- package/dist/src/plugins/paginator/index.js.map +1 -1
- package/dist/src/plugins/sharding/index.d.ts +1 -1
- package/dist/src/plugins/sharding/index.js +1 -1
- package/dist/src/structures/DmChannel.d.ts.map +1 -1
- package/dist/src/structures/DmChannel.js.map +1 -1
- package/dist/src/structures/Emoji.d.ts +75 -0
- package/dist/src/structures/Emoji.d.ts.map +1 -0
- package/dist/src/structures/Emoji.js +156 -0
- package/dist/src/structures/Emoji.js.map +1 -0
- package/dist/src/structures/GroupDmChannel.d.ts +8 -1
- package/dist/src/structures/GroupDmChannel.d.ts.map +1 -1
- package/dist/src/structures/GroupDmChannel.js +13 -4
- package/dist/src/structures/GroupDmChannel.js.map +1 -1
- package/dist/src/structures/Guild.d.ts +83 -6
- package/dist/src/structures/Guild.d.ts.map +1 -1
- package/dist/src/structures/Guild.js +177 -22
- package/dist/src/structures/Guild.js.map +1 -1
- package/dist/src/structures/GuildMember.d.ts +23 -1
- package/dist/src/structures/GuildMember.d.ts.map +1 -1
- package/dist/src/structures/GuildMember.js +38 -9
- package/dist/src/structures/GuildMember.js.map +1 -1
- package/dist/src/structures/GuildScheduledEvent.d.ts +121 -0
- package/dist/src/structures/GuildScheduledEvent.d.ts.map +1 -0
- package/dist/src/structures/GuildScheduledEvent.js +228 -0
- package/dist/src/structures/GuildScheduledEvent.js.map +1 -0
- package/dist/src/structures/GuildThreadChannel.d.ts +1 -1
- package/dist/src/structures/GuildThreadChannel.d.ts.map +1 -1
- package/dist/src/structures/Role.d.ts +33 -12
- package/dist/src/structures/Role.d.ts.map +1 -1
- package/dist/src/structures/Role.js +58 -24
- package/dist/src/structures/Role.js.map +1 -1
- package/dist/src/structures/ThreadMember.d.ts.map +1 -1
- package/dist/src/structures/ThreadMember.js +0 -1
- package/dist/src/structures/ThreadMember.js.map +1 -1
- package/dist/src/structures/User.d.ts +16 -4
- package/dist/src/structures/User.d.ts.map +1 -1
- package/dist/src/structures/User.js +25 -9
- package/dist/src/structures/User.js.map +1 -1
- package/dist/src/structures/Webhook.d.ts +40 -19
- package/dist/src/structures/Webhook.d.ts.map +1 -1
- package/dist/src/structures/Webhook.js +70 -30
- package/dist/src/structures/Webhook.js.map +1 -1
- package/dist/src/types/index.d.ts +5 -1
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/listeners.d.ts +12 -7
- package/dist/src/types/listeners.d.ts.map +1 -1
- package/dist/src/types/listeners.js +3 -1
- package/dist/src/types/listeners.js.map +1 -1
- package/dist/src/utils/cdn.d.ts +31 -0
- package/dist/src/utils/cdn.d.ts.map +1 -0
- package/dist/src/utils/cdn.js +18 -0
- package/dist/src/utils/cdn.js.map +1 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +1 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/payload.d.ts.map +1 -1
- package/dist/src/utils/payload.js +20 -5
- package/dist/src/utils/payload.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -16,11 +16,17 @@ export class ModalHandler extends Base {
|
|
|
16
16
|
* @internal
|
|
17
17
|
*/
|
|
18
18
|
async handleInteraction(data) {
|
|
19
|
-
|
|
19
|
+
let modal = this.modals.find((x) => {
|
|
20
20
|
const modalKey = x.customIdParser(x.customId).key;
|
|
21
21
|
const interactionKey = x.customIdParser(data.data.custom_id).key;
|
|
22
22
|
return modalKey === interactionKey;
|
|
23
23
|
});
|
|
24
|
+
if (!modal) {
|
|
25
|
+
modal = this.modals.find((x) => {
|
|
26
|
+
const modalKey = x.customIdParser(x.customId).key;
|
|
27
|
+
return modalKey === "*";
|
|
28
|
+
});
|
|
29
|
+
}
|
|
24
30
|
if (!modal)
|
|
25
31
|
return false;
|
|
26
32
|
return await modal.run(new ModalInteraction(this.client, data, {}), modal.customIdParser(data.data.custom_id).data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalHandler.js","sourceRoot":"","sources":["../../../src/internals/ModalHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,OAAO,YAAa,SAAQ,IAAI;IACrC,MAAM,GAAY,EAAE,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,KAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACF,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAA+B;QACtD,
|
|
1
|
+
{"version":3,"file":"ModalHandler.js","sourceRoot":"","sources":["../../../src/internals/ModalHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAExD,MAAM,OAAO,YAAa,SAAQ,IAAI;IACrC,MAAM,GAAY,EAAE,CAAA;IACpB;;;OAGG;IACH,aAAa,CAAC,KAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,CAAC;IACF,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAA+B;QACtD,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;YACjD,MAAM,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAA;YAChE,OAAO,QAAQ,KAAK,cAAc,CAAA;QACnC,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,EAAE,CAAC;YACZ,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,QAAQ,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;gBACjD,OAAO,QAAQ,KAAK,GAAG,CAAA;YACxB,CAAC,CAAC,CAAA;QACH,CAAC;QAED,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAA;QAExB,OAAO,MAAM,KAAK,CAAC,GAAG,CACrB,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAC3C,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAC9C,CAAA;IACF,CAAC;CACD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { type APIApplicationCommandInteractionDataBasicOption, type APIApplicationCommandInteractionDataOption, type APIAutocompleteApplicationCommandInteractionData, type APIChatInputApplicationCommandInteractionData } from "discord-api-types/v10";
|
|
1
|
+
import { type APIApplicationCommandInteractionDataBasicOption, type APIApplicationCommandInteractionDataOption, type APIAutocompleteApplicationCommandInteractionData, type APIChatInputApplicationCommandInteractionData, type APIInteractionDataResolved } from "discord-api-types/v10";
|
|
2
2
|
import { Base } from "../abstracts/Base.js";
|
|
3
|
-
import { type Client, type CommandOptions, type ResolvedFile, Role, User
|
|
3
|
+
import { type AnyChannel, type Client, type CommandOptions, type ResolvedFile, Role, User } from "../index.js";
|
|
4
4
|
export type RawOptions = {
|
|
5
5
|
[key: string]: APIApplicationCommandInteractionDataBasicOption["value"] | undefined;
|
|
6
6
|
};
|
|
@@ -13,13 +13,19 @@ export declare class OptionsHandler extends Base {
|
|
|
13
13
|
* The raw options that were in the interaction data, before they were parsed.
|
|
14
14
|
*/
|
|
15
15
|
readonly raw: APIApplicationCommandInteractionDataBasicOption[];
|
|
16
|
+
/**
|
|
17
|
+
* The resolved data from the interaction.
|
|
18
|
+
*/
|
|
19
|
+
readonly resolved: Partial<APIInteractionDataResolved>;
|
|
20
|
+
readonly guildId?: string;
|
|
16
21
|
private interactionData?;
|
|
17
22
|
private definitions?;
|
|
18
|
-
constructor({ client, options, interactionData, definitions }: {
|
|
23
|
+
constructor({ client, options, interactionData, definitions, guildId }: {
|
|
19
24
|
client: Client;
|
|
20
25
|
options: APIApplicationCommandInteractionDataOption[];
|
|
21
26
|
interactionData: APIChatInputApplicationCommandInteractionData | APIAutocompleteApplicationCommandInteractionData;
|
|
22
27
|
definitions: CommandOptions;
|
|
28
|
+
guildId?: string;
|
|
23
29
|
});
|
|
24
30
|
/**
|
|
25
31
|
* Get the value of a string option.
|
|
@@ -59,32 +65,34 @@ export declare class OptionsHandler extends Base {
|
|
|
59
65
|
* @param required Whether the option is required.
|
|
60
66
|
* @returns The value of the option, or undefined if the option was not provided and it is not required.
|
|
61
67
|
*/
|
|
62
|
-
getUser(key: string, required?: false): User
|
|
63
|
-
getUser(key: string, required: true): User
|
|
68
|
+
getUser(key: string, required?: false): User | undefined;
|
|
69
|
+
getUser(key: string, required: true): User;
|
|
70
|
+
getChannelId(key: string, required?: false): Promise<string | undefined>;
|
|
71
|
+
getChannelId(key: string, required: true): Promise<string>;
|
|
64
72
|
/**
|
|
65
73
|
* Get the value of a channel option.
|
|
66
74
|
* @param key The name of the option to get the value of.
|
|
67
75
|
* @param required Whether the option is required.
|
|
68
|
-
* @returns The
|
|
76
|
+
* @returns The ID of the selected channel, or undefined if the option was not provided and it is not required.
|
|
69
77
|
*/
|
|
70
|
-
getChannel(key: string, required?: false): Promise<
|
|
71
|
-
getChannel(key: string, required: true): Promise<
|
|
78
|
+
getChannel(key: string, required?: false): Promise<AnyChannel | undefined>;
|
|
79
|
+
getChannel(key: string, required: true): Promise<AnyChannel>;
|
|
72
80
|
/**
|
|
73
81
|
* Get the value of a role option.
|
|
74
82
|
* @param key The name of the option to get the value of.
|
|
75
83
|
* @param required Whether the option is required.
|
|
76
84
|
* @returns The value of the option, or undefined if the option was not provided and it is not required.
|
|
77
85
|
*/
|
|
78
|
-
getRole(key: string, required?: false): Role
|
|
79
|
-
getRole(key: string, required: true): Role
|
|
86
|
+
getRole(key: string, required?: false): Role | undefined;
|
|
87
|
+
getRole(key: string, required: true): Role;
|
|
80
88
|
/**
|
|
81
89
|
* Get the value of a mentionable option.
|
|
82
90
|
* @param key The name of the option to get the value of.
|
|
83
91
|
* @param required Whether the option is required.
|
|
84
92
|
* @returns The value of the option, or undefined if the option was not provided and it is not required.
|
|
85
93
|
*/
|
|
86
|
-
getMentionable(key: string, required?: false):
|
|
87
|
-
getMentionable(key: string, required: true):
|
|
94
|
+
getMentionable(key: string, required?: false): User | Role | undefined;
|
|
95
|
+
getMentionable(key: string, required: true): User | Role;
|
|
88
96
|
getAttachment(key: string, required?: false): ResolvedFile | undefined;
|
|
89
97
|
getAttachment(key: string, required: true): ResolvedFile;
|
|
90
98
|
private checkAgainstDefinition;
|
|
@@ -1 +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,EAC/C,KAAK,gDAAgD,
|
|
1
|
+
{"version":3,"file":"OptionsHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ApplicationCommandOptionType
|
|
1
|
+
import { ApplicationCommandOptionType } from "discord-api-types/v10";
|
|
2
2
|
import { Base } from "../abstracts/Base.js";
|
|
3
|
-
import { Role, User
|
|
3
|
+
import { Role, User } from "../index.js";
|
|
4
4
|
/**
|
|
5
5
|
* This class is used to parse the options of a command, and provide errors for any missing or invalid options.
|
|
6
6
|
* It is used internally by the Command class.
|
|
@@ -10,13 +10,20 @@ export class OptionsHandler extends Base {
|
|
|
10
10
|
* The raw options that were in the interaction data, before they were parsed.
|
|
11
11
|
*/
|
|
12
12
|
raw;
|
|
13
|
+
/**
|
|
14
|
+
* The resolved data from the interaction.
|
|
15
|
+
*/
|
|
16
|
+
resolved;
|
|
17
|
+
guildId;
|
|
13
18
|
interactionData;
|
|
14
19
|
definitions;
|
|
15
|
-
constructor({ client, options, interactionData, definitions }) {
|
|
20
|
+
constructor({ client, options, interactionData, definitions, guildId }) {
|
|
16
21
|
super(client);
|
|
17
22
|
this.raw = [];
|
|
18
23
|
this.interactionData = interactionData;
|
|
19
24
|
this.definitions = definitions;
|
|
25
|
+
this.resolved = interactionData.resolved ?? {};
|
|
26
|
+
this.guildId = guildId;
|
|
20
27
|
for (const option of options) {
|
|
21
28
|
if (option.type === ApplicationCommandOptionType.Subcommand) {
|
|
22
29
|
for (const subOption of option.options ?? []) {
|
|
@@ -90,7 +97,21 @@ export class OptionsHandler extends Base {
|
|
|
90
97
|
}
|
|
91
98
|
else if (!id || typeof id !== "string")
|
|
92
99
|
return undefined;
|
|
93
|
-
|
|
100
|
+
const user = this.resolved.users?.[id];
|
|
101
|
+
if (!user) {
|
|
102
|
+
throw new Error(`Discord failed to resolve user for ${key}, this is a bug.`);
|
|
103
|
+
}
|
|
104
|
+
return new User(this.client, user);
|
|
105
|
+
}
|
|
106
|
+
async getChannelId(key, required = false) {
|
|
107
|
+
const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Channel)?.value;
|
|
108
|
+
if (required) {
|
|
109
|
+
if (!id || typeof id !== "string")
|
|
110
|
+
throw new Error(`Missing required option: ${key}`);
|
|
111
|
+
}
|
|
112
|
+
else if (!id || typeof id !== "string")
|
|
113
|
+
return undefined;
|
|
114
|
+
return id;
|
|
94
115
|
}
|
|
95
116
|
async getChannel(key, required = false) {
|
|
96
117
|
const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Channel)?.value;
|
|
@@ -100,8 +121,7 @@ export class OptionsHandler extends Base {
|
|
|
100
121
|
}
|
|
101
122
|
else if (!id || typeof id !== "string")
|
|
102
123
|
return undefined;
|
|
103
|
-
|
|
104
|
-
return channelFactory(this.client, data);
|
|
124
|
+
return (await this.client.fetchChannel(id)) ?? undefined;
|
|
105
125
|
}
|
|
106
126
|
getRole(key, required = false) {
|
|
107
127
|
const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Role)?.value;
|
|
@@ -111,9 +131,16 @@ export class OptionsHandler extends Base {
|
|
|
111
131
|
}
|
|
112
132
|
else if (!id || typeof id !== "string")
|
|
113
133
|
return undefined;
|
|
114
|
-
|
|
134
|
+
const role = this.resolved.roles?.[id];
|
|
135
|
+
if (!role) {
|
|
136
|
+
throw new Error(`Discord failed to resolve role for ${key}, this is a bug.`);
|
|
137
|
+
}
|
|
138
|
+
if (!this.guildId) {
|
|
139
|
+
throw new Error("Guild ID is not available for this interaction");
|
|
140
|
+
}
|
|
141
|
+
return new Role(this.client, role, this.guildId);
|
|
115
142
|
}
|
|
116
|
-
|
|
143
|
+
getMentionable(key, required = false) {
|
|
117
144
|
const id = this.raw.find((x) => x.name === key && x.type === ApplicationCommandOptionType.Mentionable)?.value;
|
|
118
145
|
if (required) {
|
|
119
146
|
if (!id || typeof id !== "string")
|
|
@@ -121,14 +148,20 @@ export class OptionsHandler extends Base {
|
|
|
121
148
|
}
|
|
122
149
|
else if (!id || typeof id !== "string")
|
|
123
150
|
return undefined;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
return user;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
151
|
+
// Check if it's a user first
|
|
152
|
+
const user = this.resolved.users?.[id];
|
|
153
|
+
if (user) {
|
|
154
|
+
return new User(this.client, user);
|
|
155
|
+
}
|
|
156
|
+
// Check if it's a role
|
|
157
|
+
const role = this.resolved.roles?.[id];
|
|
158
|
+
if (role) {
|
|
159
|
+
if (!this.guildId) {
|
|
160
|
+
throw new Error("Guild ID is not available for this interaction");
|
|
161
|
+
}
|
|
162
|
+
return new Role(this.client, role, this.guildId);
|
|
131
163
|
}
|
|
164
|
+
throw new Error(`Discord failed to resolve mentionable for ${key}, this is a bug.`);
|
|
132
165
|
}
|
|
133
166
|
getAttachment(key, required = false) {
|
|
134
167
|
if (!this.interactionData)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionsHandler.js","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,4BAA4B,EAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"OptionsHandler.js","sourceRoot":"","sources":["../../../src/internals/OptionsHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import type { Context, Route } from "../../abstracts/Plugin.js";
|
|
2
|
+
import { Client, type ClientOptions } from "../../classes/Client.js";
|
|
3
|
+
/**
|
|
4
|
+
* Credentials for a single application in the ClientManager
|
|
5
|
+
*/
|
|
6
|
+
export interface ApplicationCredentials {
|
|
7
|
+
/**
|
|
8
|
+
* The client ID of the application - must be a valid Discord snowflake
|
|
9
|
+
*/
|
|
10
|
+
clientId: string;
|
|
11
|
+
/**
|
|
12
|
+
* The public key of the app, used for interaction verification
|
|
13
|
+
* Can be a single key or an array of keys
|
|
14
|
+
*/
|
|
15
|
+
publicKey: string | string[];
|
|
16
|
+
/**
|
|
17
|
+
* The token of the bot
|
|
18
|
+
*/
|
|
19
|
+
token: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ClientSetupOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Whether to recreate the client if it already exists
|
|
24
|
+
*/
|
|
25
|
+
recreate?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Whether to set the interactions URL on the Discord Developer Portal
|
|
28
|
+
*/
|
|
29
|
+
setInteractionsUrlOnDevPortal?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to set the events URL on the Discord Developer Portal
|
|
32
|
+
*/
|
|
33
|
+
setEventsUrlOnDevPortal?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Options for the ClientManager
|
|
37
|
+
*/
|
|
38
|
+
export interface ClientManagerOptions {
|
|
39
|
+
/**
|
|
40
|
+
* The base URL of the applications to mount the proxy at
|
|
41
|
+
*/
|
|
42
|
+
baseUrl: string;
|
|
43
|
+
/**
|
|
44
|
+
* The deploy secret of the applications
|
|
45
|
+
*/
|
|
46
|
+
deploySecret: string;
|
|
47
|
+
/**
|
|
48
|
+
* Shared options that apply to all applications
|
|
49
|
+
*/
|
|
50
|
+
sharedOptions: Omit<ClientOptions, "baseUrl" | "deploySecret" | "clientId" | "publicKey" | "token">;
|
|
51
|
+
/**
|
|
52
|
+
* Array of application credentials.
|
|
53
|
+
* If you need dynamic application loading (e.g., from a database),
|
|
54
|
+
* extend ClientManager and override getClient/getAllClients/getClientIds instead.
|
|
55
|
+
*/
|
|
56
|
+
applications?: ApplicationCredentials[];
|
|
57
|
+
/**
|
|
58
|
+
* The initial setup options for the clients, this will be passed to clientManager#setupClient
|
|
59
|
+
*/
|
|
60
|
+
initialSetupOptions?: ClientSetupOptions;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Manages multiple Discord applications, routing requests to the appropriate client
|
|
64
|
+
* based on the client ID in the URL path (/:clientId/*)
|
|
65
|
+
*
|
|
66
|
+
* To use with a database, extend this class and override:
|
|
67
|
+
* - getClient(clientId) - Return the client for a specific ID (or create it)
|
|
68
|
+
* - getAllClients() - Return all available clients
|
|
69
|
+
* - getClientIds() - Return all available client IDs
|
|
70
|
+
*
|
|
71
|
+
* Then call setupClient(credentials) to create clients on-demand.
|
|
72
|
+
*/
|
|
73
|
+
export declare class ClientManager {
|
|
74
|
+
/**
|
|
75
|
+
* The routes that the application manager will handle
|
|
76
|
+
*/
|
|
77
|
+
routes: Route[];
|
|
78
|
+
/**
|
|
79
|
+
* The shared deploy secret used for all applications
|
|
80
|
+
*/
|
|
81
|
+
protected deploySecret?: string;
|
|
82
|
+
/**
|
|
83
|
+
* The base URL of the applications to mount the proxy at
|
|
84
|
+
*/
|
|
85
|
+
protected baseUrl: string;
|
|
86
|
+
/**
|
|
87
|
+
* Shared options that apply to all applications
|
|
88
|
+
* Protected to allow subclasses to use it when creating clients
|
|
89
|
+
*/
|
|
90
|
+
protected sharedOptions: Omit<ClientOptions, "baseUrl" | "deploySecret" | "clientId" | "publicKey" | "token">;
|
|
91
|
+
protected clients: Map<string, Client>;
|
|
92
|
+
protected staticApplications: ApplicationCredentials[];
|
|
93
|
+
protected initialHandlers: ConstructorParameters<typeof Client>[1];
|
|
94
|
+
protected initialPlugins: ConstructorParameters<typeof Client>[2];
|
|
95
|
+
/**
|
|
96
|
+
* Creates a new ClientManager
|
|
97
|
+
* @param options Configuration options including shared settings and per-app credentials
|
|
98
|
+
*/
|
|
99
|
+
constructor(options: ClientManagerOptions, handlers: ConstructorParameters<typeof Client>[1], plugins: ConstructorParameters<typeof Client>[2]);
|
|
100
|
+
/**
|
|
101
|
+
* Setup a client from credentials.
|
|
102
|
+
*
|
|
103
|
+
* @param credentials The application credentials
|
|
104
|
+
* @param options The setup options for the client
|
|
105
|
+
* @returns A configured Client instance
|
|
106
|
+
*/
|
|
107
|
+
setupClient(credentials: ApplicationCredentials, options?: ClientSetupOptions): Promise<Client>;
|
|
108
|
+
/**
|
|
109
|
+
* Set up the routing for the application manager
|
|
110
|
+
*/
|
|
111
|
+
protected setupRoutes(): void;
|
|
112
|
+
/**
|
|
113
|
+
* Deploy all applications
|
|
114
|
+
*/
|
|
115
|
+
protected handleGlobalDeploy(req: Request): Promise<Response>;
|
|
116
|
+
/**
|
|
117
|
+
* Handle a request and route it to the appropriate client
|
|
118
|
+
* @param req The incoming request
|
|
119
|
+
* @param ctx Optional context (for Cloudflare Workers, etc.)
|
|
120
|
+
*/
|
|
121
|
+
handleRequest(req: Request, ctx?: Context): Promise<Response>;
|
|
122
|
+
protected handleProxyRequest(req: Request, ctx?: Context): Promise<Response>;
|
|
123
|
+
/**
|
|
124
|
+
* Get a client by its client ID
|
|
125
|
+
* @param clientId The client ID to look up
|
|
126
|
+
*/
|
|
127
|
+
getClient(clientId: string): Client | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Get all clients that the manager is managing
|
|
130
|
+
*/
|
|
131
|
+
getClients(): Client[];
|
|
132
|
+
/**
|
|
133
|
+
* Get all client IDs that the manager is managing
|
|
134
|
+
*/
|
|
135
|
+
getClientIds(): string[];
|
|
136
|
+
/**
|
|
137
|
+
* Get all applications
|
|
138
|
+
* You can override this in an extended class to return dynamic applications
|
|
139
|
+
*/
|
|
140
|
+
getApplications(): Promise<ApplicationCredentials[]>;
|
|
141
|
+
/**
|
|
142
|
+
* Get an application by its client ID
|
|
143
|
+
* You can override this in an extended class to return dynamic applications
|
|
144
|
+
*/
|
|
145
|
+
getApplication(clientId: string): Promise<ApplicationCredentials | undefined>;
|
|
146
|
+
/**
|
|
147
|
+
* Validate if a string is a valid Discord snowflake
|
|
148
|
+
*/
|
|
149
|
+
protected isValidClientId(id: string): boolean;
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=ClientManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientManager.d.ts","sourceRoot":"","sources":["../../../../src/plugins/client-manager/ClientManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAEpE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAA;IAChB;;;OAGG;IACH,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,kBAAkB;IAClC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,6BAA6B,CAAC,EAAE,OAAO,CAAA;IACvC;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;OAEG;IACH,aAAa,EAAE,IAAI,CAClB,aAAa,EACb,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAC/D,CAAA;IACD;;;;OAIG;IACH,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAA;IACvC;;OAEG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAa;IACzB;;OAEG;IACH,MAAM,EAAE,KAAK,EAAE,CAAK;IAEpB;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAE/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;IAEzB;;;OAGG;IACH,SAAS,CAAC,aAAa,EAAE,IAAI,CAC5B,aAAa,EACb,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,CAC/D,CAAA;IAED,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAY;IAClD,SAAS,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,CAAA;IACtD,SAAS,CAAC,eAAe,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAClE,SAAS,CAAC,cAAc,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAEjE;;;OAGG;gBAEF,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EACjD,OAAO,EAAE,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAyBjD;;;;;;OAMG;IACU,WAAW,CACvB,WAAW,EAAE,sBAAsB,EACnC,OAAO,GAAE,kBAIR,GACC,OAAO,CAAC,MAAM,CAAC;IAqDlB;;OAEG;IACH,SAAS,CAAC,WAAW;IAsBrB;;OAEG;cACa,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA8BnE;;;;OAIG;IACG,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;cAkDnD,kBAAkB,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,CAAC,EAAE,OAAO,GACX,OAAO,CAAC,QAAQ,CAAC;IAIpB;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI/C;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;IAI1D;;;OAGG;IACG,cAAc,CACnB,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAI9C;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG9C"}
|