seyfert 4.4.1 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/lib/api/Routes/cdn.d.ts +2 -2
- package/lib/api/Routes/guilds.d.ts +2 -2
- package/lib/api/Routes/invites.d.ts +2 -2
- package/lib/api/api.d.ts +20 -8
- package/lib/api/api.js +198 -44
- package/lib/api/shared.d.ts +30 -1
- package/lib/api/utils/constants.d.ts +1 -1
- package/lib/api/utils/constants.js +1 -1
- package/lib/api/utils/utils.d.ts +2 -1
- package/lib/api/utils/utils.js +1 -1
- package/lib/builders/Attachment.d.ts +1 -1
- package/lib/builders/Attachment.js +30 -8
- package/lib/builders/MediaGallery.d.ts +2 -2
- package/lib/builders/MediaGallery.js +10 -0
- package/lib/builders/Modal.d.ts +18 -8
- package/lib/builders/Modal.js +36 -7
- package/lib/builders/Poll.js +18 -0
- package/lib/builders/RadioGroup.d.ts +4 -3
- package/lib/builders/RadioGroup.js +24 -3
- package/lib/builders/SelectMenu.d.ts +8 -6
- package/lib/builders/SelectMenu.js +24 -3
- package/lib/builders/types.d.ts +3 -2
- package/lib/cache/adapters/default.d.ts +1 -1
- package/lib/cache/adapters/default.js +23 -26
- package/lib/cache/adapters/limited.d.ts +1 -0
- package/lib/cache/adapters/limited.js +47 -33
- package/lib/cache/index.d.ts +19 -25
- package/lib/cache/index.js +58 -6
- package/lib/cache/resources/bans.d.ts +1 -1
- package/lib/cache/resources/bans.js +4 -4
- package/lib/cache/resources/channels.d.ts +1 -1
- package/lib/cache/resources/channels.js +4 -4
- package/lib/cache/resources/default/base.d.ts +1 -1
- package/lib/cache/resources/default/base.js +8 -8
- package/lib/cache/resources/default/guild-based.d.ts +5 -5
- package/lib/cache/resources/default/guild-based.js +29 -16
- package/lib/cache/resources/default/guild-related.d.ts +5 -5
- package/lib/cache/resources/default/guild-related.js +14 -14
- package/lib/cache/resources/emojis.d.ts +1 -1
- package/lib/cache/resources/emojis.js +4 -4
- package/lib/cache/resources/guilds.js +28 -15
- package/lib/cache/resources/members.d.ts +1 -1
- package/lib/cache/resources/members.js +6 -6
- package/lib/cache/resources/messages.d.ts +7 -2
- package/lib/cache/resources/messages.js +43 -20
- package/lib/cache/resources/overwrites.d.ts +1 -1
- package/lib/cache/resources/overwrites.js +5 -8
- package/lib/cache/resources/roles.d.ts +1 -1
- package/lib/cache/resources/roles.js +4 -4
- package/lib/cache/resources/stickers.d.ts +1 -1
- package/lib/cache/resources/stickers.js +4 -4
- package/lib/cache/resources/users.js +4 -4
- package/lib/cache/resources/voice-states.d.ts +1 -1
- package/lib/cache/resources/voice-states.js +4 -4
- package/lib/client/base.d.ts +83 -24
- package/lib/client/base.js +594 -39
- package/lib/client/client.d.ts +29 -4
- package/lib/client/client.js +38 -13
- package/lib/client/collectors.d.ts +9 -8
- package/lib/client/collectors.js +19 -52
- package/lib/client/httpclient.d.ts +3 -0
- package/lib/client/index.d.ts +3 -1
- package/lib/client/index.js +4 -0
- package/lib/client/intents.d.ts +3 -0
- package/lib/client/intents.js +9 -0
- package/lib/client/plugins/api.d.ts +4 -0
- package/lib/client/plugins/api.js +550 -0
- package/lib/client/plugins/errors.d.ts +25 -0
- package/lib/client/plugins/errors.js +79 -0
- package/lib/client/plugins/order.d.ts +10 -0
- package/lib/client/plugins/order.js +32 -0
- package/lib/client/plugins/registry.d.ts +273 -0
- package/lib/client/plugins/registry.js +868 -0
- package/lib/client/plugins/shared.d.ts +23 -0
- package/lib/client/plugins/shared.js +193 -0
- package/lib/client/plugins/types.d.ts +398 -0
- package/lib/client/plugins/types.js +8 -0
- package/lib/client/plugins.d.ts +78 -0
- package/lib/client/plugins.js +558 -0
- package/lib/client/transformers.d.ts +33 -33
- package/lib/client/workerclient.d.ts +11 -2
- package/lib/client/workerclient.js +33 -22
- package/lib/collection.d.ts +10 -8
- package/lib/collection.js +19 -25
- package/lib/commands/applications/chat.d.ts +20 -18
- package/lib/commands/applications/chat.js +39 -14
- package/lib/commands/applications/chatcontext.d.ts +23 -15
- package/lib/commands/applications/chatcontext.js +23 -2
- package/lib/commands/applications/entryPoint.d.ts +4 -3
- package/lib/commands/applications/entryPoint.js +1 -1
- package/lib/commands/applications/entrycontext.d.ts +7 -9
- package/lib/commands/applications/entrycontext.js +3 -1
- package/lib/commands/applications/menu.d.ts +4 -3
- package/lib/commands/applications/menucontext.d.ts +7 -9
- package/lib/commands/applications/menucontext.js +3 -1
- package/lib/commands/applications/options.d.ts +23 -23
- package/lib/commands/applications/shared.d.ts +39 -17
- package/lib/commands/decorators.d.ts +50 -38
- package/lib/commands/decorators.js +15 -5
- package/lib/commands/handle.d.ts +19 -8
- package/lib/commands/handle.js +224 -143
- package/lib/commands/handler.d.ts +21 -8
- package/lib/commands/handler.js +157 -69
- package/lib/commands/index.d.ts +1 -0
- package/lib/commands/optionresolver.d.ts +2 -2
- package/lib/common/it/colors.js +12 -2
- package/lib/common/it/error.d.ts +9 -0
- package/lib/common/it/error.js +8 -0
- package/lib/common/it/fake-promise.d.ts +4 -0
- package/lib/common/it/fake-promise.js +10 -0
- package/lib/common/it/formatter.d.ts +14 -11
- package/lib/common/it/formatter.js +4 -3
- package/lib/common/it/logger.d.ts +7 -1
- package/lib/common/it/logger.js +24 -6
- package/lib/common/it/utils.d.ts +6 -8
- package/lib/common/it/utils.js +44 -42
- package/lib/common/shorters/application.d.ts +3 -3
- package/lib/common/shorters/application.js +3 -2
- package/lib/common/shorters/bans.d.ts +8 -4
- package/lib/common/shorters/bans.js +13 -5
- package/lib/common/shorters/channels.d.ts +4 -4
- package/lib/common/shorters/channels.js +4 -4
- package/lib/common/shorters/emojis.js +1 -0
- package/lib/common/shorters/guilds.d.ts +8 -8
- package/lib/common/shorters/guilds.js +14 -31
- package/lib/common/shorters/interaction.d.ts +1 -1
- package/lib/common/shorters/invites.d.ts +201 -201
- package/lib/common/shorters/members.d.ts +7 -7
- package/lib/common/shorters/members.js +13 -14
- package/lib/common/shorters/messages.d.ts +2 -2
- package/lib/common/shorters/soundboard.d.ts +5 -5
- package/lib/common/shorters/users.d.ts +1 -1
- package/lib/common/shorters/webhook.d.ts +3 -2
- package/lib/common/shorters/webhook.js +0 -7
- package/lib/common/types/options.d.ts +4 -0
- package/lib/common/types/util.d.ts +8 -0
- package/lib/common/types/write.d.ts +2 -1
- package/lib/components/BaseSelectMenuComponent.d.ts +1 -1
- package/lib/components/BaseSelectMenuComponent.js +1 -1
- package/lib/components/ButtonComponent.d.ts +3 -3
- package/lib/components/ChannelSelectMenuComponent.d.ts +2 -2
- package/lib/components/File.d.ts +1 -1
- package/lib/components/MediaGallery.d.ts +1 -1
- package/lib/components/MentionableSelectMenuComponent.d.ts +1 -1
- package/lib/components/RoleSelectMenuComponent.d.ts +1 -1
- package/lib/components/Separator.d.ts +1 -1
- package/lib/components/StringSelectMenuComponent.d.ts +1 -1
- package/lib/components/TextInputComponent.d.ts +1 -1
- package/lib/components/Thumbnail.d.ts +1 -1
- package/lib/components/UserSelectMenuComponent.d.ts +1 -1
- package/lib/components/componentcommand.d.ts +8 -7
- package/lib/components/componentcontext.d.ts +24 -36
- package/lib/components/componentcontext.js +7 -17
- package/lib/components/handler.d.ts +17 -7
- package/lib/components/handler.js +108 -49
- package/lib/components/index.d.ts +1 -0
- package/lib/components/index.js +1 -0
- package/lib/components/interactioncontext.d.ts +45 -0
- package/lib/components/interactioncontext.js +93 -0
- package/lib/components/modalcommand.d.ts +5 -4
- package/lib/components/modalcontext.d.ts +39 -20
- package/lib/components/modalcontext.js +59 -6
- package/lib/events/event.d.ts +9 -3
- package/lib/events/handler.d.ts +51 -6
- package/lib/events/handler.js +165 -36
- package/lib/events/hooks/application_command.d.ts +1 -1
- package/lib/events/hooks/auto_moderation.d.ts +2 -2
- package/lib/events/hooks/guild.d.ts +150 -150
- package/lib/events/hooks/interactions.d.ts +1 -1
- package/lib/events/hooks/invite.d.ts +20 -20
- package/lib/events/hooks/message.d.ts +27 -27
- package/lib/events/hooks/presence.d.ts +11 -11
- package/lib/events/hooks/soundboard.d.ts +6 -6
- package/lib/events/hooks/stage.d.ts +2 -2
- package/lib/events/hooks/subscriptions.d.ts +3 -3
- package/lib/events/hooks/thread.d.ts +30 -30
- package/lib/events/hooks/voice.d.ts +3 -4
- package/lib/events/hooks/voice.js +2 -1
- package/lib/events/utils.d.ts +4 -0
- package/lib/events/utils.js +59 -0
- package/lib/index.d.ts +9 -4
- package/lib/index.js +14 -8
- package/lib/langs/handler.d.ts +14 -11
- package/lib/langs/handler.js +46 -9
- package/lib/langs/router.d.ts +10 -3
- package/lib/structures/Application.d.ts +1 -1
- package/lib/structures/Emoji.d.ts +3 -3
- package/lib/structures/Emoji.js +2 -2
- package/lib/structures/Guild.d.ts +154 -154
- package/lib/structures/GuildBan.d.ts +4 -4
- package/lib/structures/GuildBan.js +3 -3
- package/lib/structures/GuildMember.d.ts +7 -7
- package/lib/structures/GuildMember.js +28 -7
- package/lib/structures/GuildRole.d.ts +1 -1
- package/lib/structures/GuildRole.js +2 -2
- package/lib/structures/Interaction.d.ts +11 -9
- package/lib/structures/Interaction.js +33 -12
- package/lib/structures/Message.d.ts +21 -14
- package/lib/structures/Message.js +29 -14
- package/lib/structures/User.d.ts +1 -1
- package/lib/structures/VoiceState.d.ts +4 -0
- package/lib/structures/VoiceState.js +13 -1
- package/lib/structures/Webhook.d.ts +9 -1
- package/lib/structures/Webhook.js +4 -1
- package/lib/structures/channels.d.ts +148 -134
- package/lib/structures/channels.js +27 -26
- package/lib/structures/extra/BitField.d.ts +4 -4
- package/lib/structures/extra/BitField.js +20 -4
- package/lib/structures/extra/DiscordBase.js +1 -1
- package/lib/structures/extra/Permissions.d.ts +2 -4
- package/lib/structures/extra/Permissions.js +1 -17
- package/lib/types/payloads/_interactions/responses.d.ts +2 -2
- package/lib/types/payloads/components.d.ts +4 -4
- package/lib/websocket/SharedTypes.d.ts +4 -4
- package/lib/websocket/constants/index.d.ts +1 -1
- package/lib/websocket/constants/index.js +3 -2
- package/lib/websocket/discord/events/memberUpdate.js +2 -2
- package/lib/websocket/discord/heartbeater.d.ts +1 -0
- package/lib/websocket/discord/heartbeater.js +7 -0
- package/lib/websocket/discord/shard.d.ts +2 -2
- package/lib/websocket/discord/shard.js +16 -14
- package/lib/websocket/discord/sharder.d.ts +8 -7
- package/lib/websocket/discord/sharder.js +26 -6
- package/lib/websocket/discord/shared.d.ts +19 -6
- package/lib/websocket/discord/socket/custom.js +5 -0
- package/lib/websocket/discord/worker.d.ts +1 -0
- package/lib/websocket/discord/worker.js +2 -0
- package/lib/websocket/discord/workermanager.d.ts +25 -11
- package/lib/websocket/discord/workermanager.js +41 -10
- package/package.json +13 -17
|
@@ -1,43 +1,46 @@
|
|
|
1
1
|
import type { ReturnCache } from '../../cache';
|
|
2
|
-
import type { GuildMemberStructure, GuildStructure, InteractionGuildMemberStructure, MessageStructure, OptionResolverStructure, UserStructure, WebhookMessageStructure } from '../../client/transformers';
|
|
3
|
-
import type
|
|
4
|
-
import type { InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, MessageWebhookCreateBodyRequest } from '../../common/types/write';
|
|
5
|
-
import { type AllChannels, ChatInputCommandInteraction } from '../../structures';
|
|
2
|
+
import type { BaseGuildChannelStructure, GuildMemberStructure, GuildStructure, InteractionGuildMemberStructure, MessageStructure, OptionResolverStructure, UserStructure, WebhookMessageStructure } from '../../client/transformers';
|
|
3
|
+
import { type If, type MakeRequired, type When } from '../../common';
|
|
4
|
+
import type { InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, MessageWebhookCreateBodyRequest, ModalCreateBodyRequest, ModalCreateOptions } from '../../common/types/write';
|
|
5
|
+
import { type AllChannels, type AllGuildChannels, ChatInputCommandInteraction, type ModalSubmitInteraction } from '../../structures';
|
|
6
6
|
import { type RESTGetAPIGuildQuery } from '../../types';
|
|
7
7
|
import { BaseContext } from '../basecontext';
|
|
8
|
-
import type {
|
|
8
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
9
9
|
import type { Command, ContextOptions, OptionsRecord, SubCommand } from './chat';
|
|
10
10
|
import type { CommandMetadata, ExtendContext, GlobalMetadata, InferWithPrefix, UsingClient } from './shared';
|
|
11
|
-
|
|
11
|
+
type GuildCommandChannel = AllGuildChannels | BaseGuildChannelStructure;
|
|
12
|
+
export interface CommandContext<T extends OptionsRecord = {}, M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext, ExtendContext {
|
|
12
13
|
}
|
|
13
|
-
export declare class CommandContext<T extends OptionsRecord = {}, M extends keyof
|
|
14
|
+
export declare class CommandContext<T extends OptionsRecord = {}, M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext {
|
|
14
15
|
readonly client: UsingClient;
|
|
15
16
|
readonly resolver: OptionResolverStructure;
|
|
16
17
|
readonly shardId: number;
|
|
17
18
|
readonly command: Command | SubCommand;
|
|
18
19
|
message: If<InferWithPrefix, MessageStructure | undefined, undefined>;
|
|
19
20
|
interaction: If<InferWithPrefix, ChatInputCommandInteraction | undefined, ChatInputCommandInteraction>;
|
|
20
|
-
messageResponse?: If<InferWithPrefix, MessageStructure | undefined>;
|
|
21
|
+
messageResponse?: If<InferWithPrefix, MessageStructure | undefined, undefined>;
|
|
21
22
|
constructor(client: UsingClient, data: ChatInputCommandInteraction | MessageStructure, resolver: OptionResolverStructure, shardId: number, command: Command | SubCommand);
|
|
22
23
|
options: ContextOptions<T>;
|
|
23
|
-
metadata: CommandMetadata<
|
|
24
|
+
metadata: CommandMetadata<M>;
|
|
24
25
|
globalMetadata: GlobalMetadata;
|
|
25
|
-
get t(): import("../..").
|
|
26
|
-
get(locale?: string): import("./shared").DefaultLocale;
|
|
27
|
-
};
|
|
26
|
+
get t(): import("../..").SeyfertLocale;
|
|
28
27
|
get fullCommandName(): string;
|
|
29
28
|
get deferred(): boolean;
|
|
30
|
-
write<WR extends boolean = false>(body: InteractionCreateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure | When<InferWithPrefix, MessageStructure, never>, void
|
|
29
|
+
write<WR extends boolean = false>(body: InteractionCreateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure | When<InferWithPrefix, MessageStructure, never>, void>>;
|
|
30
|
+
modal(body: ModalCreateBodyRequest, options?: undefined): Promise<undefined>;
|
|
31
|
+
modal(body: ModalCreateBodyRequest, options: ModalCreateOptions): Promise<ModalSubmitInteraction | null>;
|
|
31
32
|
deferReply<WR extends boolean = false>(ephemeral?: boolean, withResponse?: WR): Promise<When<WR, WebhookMessageStructure | When<InferWithPrefix, MessageStructure, never>, When<InferWithPrefix, MessageStructure, never> | undefined>>;
|
|
32
33
|
editResponse(body: InteractionMessageUpdateBodyRequest): Promise<When<InferWithPrefix, WebhookMessageStructure | MessageStructure, WebhookMessageStructure>>;
|
|
33
34
|
deleteResponse(): Promise<void>;
|
|
34
|
-
editOrReply<WR extends boolean = false>(body: InteractionCreateBodyRequest | InteractionMessageUpdateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure | When<InferWithPrefix, MessageStructure, never>, void
|
|
35
|
+
editOrReply<WR extends boolean = false>(body: InteractionCreateBodyRequest | InteractionMessageUpdateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure | When<InferWithPrefix, MessageStructure, never>, void>>;
|
|
35
36
|
followup(body: MessageWebhookCreateBodyRequest): Promise<If<InferWithPrefix, WebhookMessageStructure | MessageStructure, WebhookMessageStructure>>;
|
|
36
37
|
fetchResponse(): Promise<If<InferWithPrefix, WebhookMessageStructure | MessageStructure, WebhookMessageStructure>>;
|
|
37
38
|
channel(mode?: 'rest' | 'flow'): Promise<AllChannels>;
|
|
38
39
|
channel(mode: 'cache'): ReturnCache<If<InferWithPrefix, AllChannels | undefined, AllChannels>>;
|
|
39
40
|
me(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure | undefined>;
|
|
40
41
|
me(mode: 'cache'): ReturnCache<GuildMemberStructure | undefined>;
|
|
42
|
+
fetchMember(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure | undefined>;
|
|
43
|
+
fetchMember(mode: 'cache'): ReturnCache<GuildMemberStructure | undefined>;
|
|
41
44
|
guild(mode?: 'rest' | 'flow', query?: RESTGetAPIGuildQuery): Promise<GuildStructure<'cached' | 'api'> | undefined>;
|
|
42
45
|
guild(mode: 'cache', query?: RESTGetAPIGuildQuery): ReturnCache<GuildStructure<'cached'> | undefined>;
|
|
43
46
|
get guildId(): string | undefined;
|
|
@@ -47,9 +50,14 @@ export declare class CommandContext<T extends OptionsRecord = {}, M extends keyo
|
|
|
47
50
|
isChat(): this is CommandContext<T, M>;
|
|
48
51
|
inGuild(): this is GuildCommandContext<T, M>;
|
|
49
52
|
}
|
|
50
|
-
export interface GuildCommandContext<T extends OptionsRecord = {}, M extends keyof
|
|
53
|
+
export interface GuildCommandContext<T extends OptionsRecord = {}, M extends keyof ResolvedRegisteredMiddlewares = never> extends Omit<MakeRequired<CommandContext<T, M>, 'guildId' | 'member'>, 'channel' | 'guild' | 'me' | 'fetchMember'> {
|
|
54
|
+
channel(mode?: 'rest' | 'flow'): Promise<GuildCommandChannel>;
|
|
55
|
+
channel(mode: 'cache'): ReturnCache<If<InferWithPrefix, GuildCommandChannel | undefined, GuildCommandChannel>>;
|
|
51
56
|
guild(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'>>;
|
|
52
57
|
guild(mode: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
|
|
53
58
|
me(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure>;
|
|
54
59
|
me(mode: 'cache'): ReturnCache<GuildMemberStructure | undefined>;
|
|
60
|
+
fetchMember(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure>;
|
|
61
|
+
fetchMember(mode: 'cache'): ReturnCache<GuildMemberStructure | undefined>;
|
|
55
62
|
}
|
|
63
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CommandContext = void 0;
|
|
4
|
+
const common_1 = require("../../common");
|
|
4
5
|
const structures_1 = require("../../structures");
|
|
5
6
|
const types_1 = require("../../types");
|
|
6
7
|
const basecontext_1 = require("../basecontext");
|
|
@@ -29,7 +30,9 @@ class CommandContext extends basecontext_1.BaseContext {
|
|
|
29
30
|
metadata = {};
|
|
30
31
|
globalMetadata = {};
|
|
31
32
|
get t() {
|
|
32
|
-
return this.client.t(this.
|
|
33
|
+
return this.client.t(this.client.langs.preferGuildLocale
|
|
34
|
+
? (this.interaction?.guildLocale ?? this.interaction?.locale ?? this.client.langs.defaultLang ?? 'en-US')
|
|
35
|
+
: (this.interaction?.locale ?? this.client.langs.defaultLang ?? 'en-US'));
|
|
33
36
|
}
|
|
34
37
|
get fullCommandName() {
|
|
35
38
|
return this.resolver.fullCommandName;
|
|
@@ -43,6 +46,13 @@ class CommandContext extends basecontext_1.BaseContext {
|
|
|
43
46
|
const options = this.client.options?.commands;
|
|
44
47
|
return (this.messageResponse = await this.message[!this.messageResponse && (await options?.reply?.(this)) ? 'reply' : 'write'](body));
|
|
45
48
|
}
|
|
49
|
+
modal(body, options) {
|
|
50
|
+
if (!this.interaction)
|
|
51
|
+
throw new common_1.SeyfertError('CANNOT_USE_MODAL');
|
|
52
|
+
if (options === undefined)
|
|
53
|
+
return this.interaction.modal(body);
|
|
54
|
+
return this.interaction.modal(body, options);
|
|
55
|
+
}
|
|
46
56
|
async deferReply(ephemeral = false, withResponse) {
|
|
47
57
|
if (this.interaction)
|
|
48
58
|
return this.interaction.deferReply(ephemeral ? types_1.MessageFlags.Ephemeral : undefined, withResponse);
|
|
@@ -83,7 +93,7 @@ class CommandContext extends basecontext_1.BaseContext {
|
|
|
83
93
|
async fetchResponse() {
|
|
84
94
|
if (this.interaction)
|
|
85
95
|
return this.interaction.fetchResponse();
|
|
86
|
-
return (this.messageResponse =
|
|
96
|
+
return (this.messageResponse = await this.messageResponse.fetch());
|
|
87
97
|
}
|
|
88
98
|
channel(mode = 'flow') {
|
|
89
99
|
if (this.interaction && mode === 'cache')
|
|
@@ -107,6 +117,17 @@ class CommandContext extends basecontext_1.BaseContext {
|
|
|
107
117
|
return this.client.members.fetch(this.guildId, this.client.botId, mode === 'rest');
|
|
108
118
|
}
|
|
109
119
|
}
|
|
120
|
+
fetchMember(mode = 'flow') {
|
|
121
|
+
if (!this.guildId)
|
|
122
|
+
return mode === 'cache' ? (this.client.cache.adapter.isAsync ? Promise.resolve() : undefined) : Promise.resolve();
|
|
123
|
+
switch (mode) {
|
|
124
|
+
case 'cache':
|
|
125
|
+
return (this.client.cache.members?.get(this.author.id, this.guildId) ||
|
|
126
|
+
(this.client.cache.adapter.isAsync ? Promise.resolve() : undefined));
|
|
127
|
+
default:
|
|
128
|
+
return this.client.members.fetch(this.guildId, this.author.id, mode === 'rest');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
110
131
|
guild(mode = 'flow', query) {
|
|
111
132
|
if (!this.guildId)
|
|
112
133
|
return mode === 'cache' ? (this.client.cache.adapter.isAsync ? Promise.resolve() : undefined) : Promise.resolve();
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PluginMiddlewareDenialMetadata } from '../../client/plugins/types';
|
|
1
2
|
import { type PermissionStrings } from '../../common';
|
|
2
3
|
import { ApplicationCommandType, type ApplicationIntegrationType, type EntryPointCommandHandlerType, type InteractionContextType, type LocaleString } from '../../types';
|
|
3
|
-
import type {
|
|
4
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
4
5
|
import type { EntryPointContext } from './entrycontext';
|
|
5
6
|
import type { ExtraProps, UsingClient } from './shared';
|
|
6
7
|
export declare abstract class EntryPointCommand {
|
|
7
|
-
middlewares: (keyof
|
|
8
|
+
middlewares: readonly (keyof ResolvedRegisteredMiddlewares)[];
|
|
8
9
|
__filePath?: string;
|
|
9
10
|
__t?: {
|
|
10
11
|
name: string | undefined;
|
|
@@ -41,7 +42,7 @@ export declare abstract class EntryPointCommand {
|
|
|
41
42
|
abstract run?(context: EntryPointContext): any;
|
|
42
43
|
onAfterRun?(context: EntryPointContext, error: unknown | undefined): any;
|
|
43
44
|
onRunError(context: EntryPointContext<never>, error: unknown): any;
|
|
44
|
-
onMiddlewaresError(context: EntryPointContext<never>, error: string): any;
|
|
45
|
+
onMiddlewaresError(context: EntryPointContext<never>, error: string, _metadata: PluginMiddlewareDenialMetadata): any;
|
|
45
46
|
onBotPermissionsFail(context: EntryPointContext<never>, permissions: PermissionStrings): any;
|
|
46
47
|
onInternalError(client: UsingClient, command: EntryPointCommand, error?: unknown): any;
|
|
47
48
|
}
|
|
@@ -43,7 +43,7 @@ class EntryPointCommand {
|
|
|
43
43
|
onRunError(context, error) {
|
|
44
44
|
context.client.logger.fatal(`${this.name}.<onRunError>`, context.author.id, error);
|
|
45
45
|
}
|
|
46
|
-
onMiddlewaresError(context, error) {
|
|
46
|
+
onMiddlewaresError(context, error, _metadata) {
|
|
47
47
|
context.client.logger.fatal(`${this.name}.<onMiddlewaresError>`, context.author.id, error);
|
|
48
48
|
}
|
|
49
49
|
onBotPermissionsFail(context, permissions) {
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import type { ReturnCache } from '../../cache';
|
|
2
2
|
import type { GuildMemberStructure, GuildStructure, InteractionGuildMemberStructure, UserStructure, WebhookMessageStructure } from '../../client/transformers';
|
|
3
|
-
import type { InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, MakeRequired, MessageWebhookCreateBodyRequest, ModalCreateBodyRequest, ModalCreateOptions,
|
|
3
|
+
import type { InteractionCreateBodyRequest, InteractionMessageUpdateBodyRequest, MakeRequired, MessageWebhookCreateBodyRequest, ModalCreateBodyRequest, ModalCreateOptions, When } from '../../common';
|
|
4
4
|
import type { AllChannels, EntryPointInteraction, ModalSubmitInteraction } from '../../structures';
|
|
5
5
|
import { type RESTGetAPIGuildQuery } from '../../types';
|
|
6
6
|
import { BaseContext } from '../basecontext';
|
|
7
|
-
import type {
|
|
7
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
8
8
|
import type { EntryPointCommand } from './entryPoint';
|
|
9
9
|
import type { CommandMetadata, ExtendContext, GlobalMetadata, UsingClient } from './shared';
|
|
10
|
-
export interface EntryPointContext<M extends keyof
|
|
10
|
+
export interface EntryPointContext<M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext, ExtendContext {
|
|
11
11
|
}
|
|
12
|
-
export declare class EntryPointContext<M extends keyof
|
|
12
|
+
export declare class EntryPointContext<M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext {
|
|
13
13
|
readonly client: UsingClient;
|
|
14
14
|
readonly interaction: EntryPointInteraction;
|
|
15
15
|
readonly shardId: number;
|
|
16
16
|
readonly command: EntryPointCommand;
|
|
17
17
|
constructor(client: UsingClient, interaction: EntryPointInteraction, shardId: number, command: EntryPointCommand);
|
|
18
|
-
metadata: CommandMetadata<
|
|
18
|
+
metadata: CommandMetadata<M>;
|
|
19
19
|
globalMetadata: GlobalMetadata;
|
|
20
|
-
get t(): import("../..").
|
|
21
|
-
get(locale?: string): import("./shared").DefaultLocale;
|
|
22
|
-
};
|
|
20
|
+
get t(): import("../..").SeyfertLocale;
|
|
23
21
|
get fullCommandName(): string;
|
|
24
22
|
get deferred(): boolean;
|
|
25
23
|
write<WR extends boolean = false>(body: InteractionCreateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure, void>>;
|
|
@@ -44,7 +42,7 @@ export declare class EntryPointContext<M extends keyof RegisteredMiddlewares = n
|
|
|
44
42
|
isEntryPoint(): this is EntryPointContext<M>;
|
|
45
43
|
inGuild(): this is GuildEntryPointContext<M>;
|
|
46
44
|
}
|
|
47
|
-
export interface GuildEntryPointContext<M extends keyof
|
|
45
|
+
export interface GuildEntryPointContext<M extends keyof ResolvedRegisteredMiddlewares = never> extends Omit<MakeRequired<EntryPointContext<M>, 'guildId' | 'member'>, 'guild' | 'me'> {
|
|
48
46
|
guild(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'>>;
|
|
49
47
|
guild(mode: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
|
|
50
48
|
me(mode?: 'rest' | 'flow'): Promise<GuildMemberStructure>;
|
|
@@ -18,7 +18,9 @@ class EntryPointContext extends basecontext_1.BaseContext {
|
|
|
18
18
|
metadata = {};
|
|
19
19
|
globalMetadata = {};
|
|
20
20
|
get t() {
|
|
21
|
-
return this.client.t(this.
|
|
21
|
+
return this.client.t(this.client.langs.preferGuildLocale
|
|
22
|
+
? (this.interaction.guildLocale ?? this.interaction.locale ?? this.client.langs.defaultLang ?? 'en-US')
|
|
23
|
+
: (this.interaction.locale ?? this.client.langs.defaultLang ?? 'en-US'));
|
|
22
24
|
}
|
|
23
25
|
get fullCommandName() {
|
|
24
26
|
return this.command.name;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import type { PluginMiddlewareDenialMetadata } from '../../client/plugins/types';
|
|
1
2
|
import { type PermissionStrings } from '../../common';
|
|
2
3
|
import type { ApplicationCommandType, ApplicationIntegrationType, InteractionContextType, LocaleString } from '../../types';
|
|
3
|
-
import type {
|
|
4
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
4
5
|
import type { MenuCommandContext } from './menucontext';
|
|
5
6
|
import type { ExtraProps, UsingClient } from './shared';
|
|
6
7
|
export declare abstract class ContextMenuCommand {
|
|
7
|
-
middlewares: (keyof
|
|
8
|
+
middlewares: readonly (keyof ResolvedRegisteredMiddlewares)[];
|
|
8
9
|
__filePath?: string;
|
|
9
10
|
__t?: {
|
|
10
11
|
name: string | undefined;
|
|
@@ -41,7 +42,7 @@ export declare abstract class ContextMenuCommand {
|
|
|
41
42
|
abstract run?(context: MenuCommandContext<any>): any;
|
|
42
43
|
onAfterRun?(context: MenuCommandContext<any>, error: unknown | undefined): any;
|
|
43
44
|
onRunError?(context: MenuCommandContext<any, never>, error: unknown): any;
|
|
44
|
-
onMiddlewaresError?(context: MenuCommandContext<any, never>, error: string): any;
|
|
45
|
+
onMiddlewaresError?(context: MenuCommandContext<any, never>, error: string, metadata: PluginMiddlewareDenialMetadata): any;
|
|
45
46
|
onBotPermissionsFail?(context: MenuCommandContext<any, never>, permissions: PermissionStrings): any;
|
|
46
47
|
onInternalError?(client: UsingClient, command: ContextMenuCommand, error?: unknown): any;
|
|
47
48
|
}
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import type { ContextMenuCommand, InteractionGuildMemberStructure, ReturnCache } from '../..';
|
|
2
2
|
import { type GuildMemberStructure, type GuildStructure, type MessageStructure, type UserStructure, type WebhookMessageStructure } from '../../client/transformers';
|
|
3
|
-
import { type InteractionCreateBodyRequest, type InteractionMessageUpdateBodyRequest, type MakeRequired, type MessageWebhookCreateBodyRequest, type ModalCreateBodyRequest, type ModalCreateOptions, type
|
|
3
|
+
import { type InteractionCreateBodyRequest, type InteractionMessageUpdateBodyRequest, type MakeRequired, type MessageWebhookCreateBodyRequest, type ModalCreateBodyRequest, type ModalCreateOptions, type When } from '../../common';
|
|
4
4
|
import type { AllChannels, MessageCommandInteraction, ModalSubmitInteraction, UserCommandInteraction } from '../../structures';
|
|
5
5
|
import { type RESTGetAPIGuildQuery } from '../../types';
|
|
6
6
|
import { BaseContext } from '../basecontext';
|
|
7
|
-
import type {
|
|
7
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
8
8
|
import type { CommandMetadata, ExtendContext, GlobalMetadata, UsingClient } from './shared';
|
|
9
9
|
export type InteractionTarget<T> = T extends MessageCommandInteraction ? MessageStructure : UserStructure;
|
|
10
|
-
export interface MenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof
|
|
10
|
+
export interface MenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext, ExtendContext {
|
|
11
11
|
}
|
|
12
|
-
export declare class MenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof
|
|
12
|
+
export declare class MenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof ResolvedRegisteredMiddlewares = never> extends BaseContext {
|
|
13
13
|
readonly client: UsingClient;
|
|
14
14
|
readonly interaction: T;
|
|
15
15
|
readonly shardId: number;
|
|
16
16
|
readonly command: ContextMenuCommand;
|
|
17
17
|
constructor(client: UsingClient, interaction: T, shardId: number, command: ContextMenuCommand);
|
|
18
|
-
metadata: CommandMetadata<
|
|
18
|
+
metadata: CommandMetadata<M>;
|
|
19
19
|
globalMetadata: GlobalMetadata;
|
|
20
20
|
get target(): InteractionTarget<T>;
|
|
21
|
-
get t(): import("../..").
|
|
22
|
-
get(locale?: string): import("./shared").DefaultLocale;
|
|
23
|
-
};
|
|
21
|
+
get t(): import("../..").SeyfertLocale;
|
|
24
22
|
get fullCommandName(): string;
|
|
25
23
|
get deferred(): boolean;
|
|
26
24
|
write<WR extends boolean = false>(body: InteractionCreateBodyRequest, withResponse?: WR): Promise<When<WR, WebhookMessageStructure, void>>;
|
|
@@ -47,7 +45,7 @@ export declare class MenuCommandContext<T extends MessageCommandInteraction | Us
|
|
|
47
45
|
isMenuMessage(): this is MenuCommandContext<MessageCommandInteraction>;
|
|
48
46
|
inGuild(): this is GuildMenuCommandContext<T, M>;
|
|
49
47
|
}
|
|
50
|
-
export interface GuildMenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof
|
|
48
|
+
export interface GuildMenuCommandContext<T extends MessageCommandInteraction | UserCommandInteraction, M extends keyof ResolvedRegisteredMiddlewares = never> extends Omit<MakeRequired<MenuCommandContext<T, M>, 'guildId' | 'member'>, 'guild'> {
|
|
51
49
|
guild(mode?: 'rest' | 'flow'): Promise<GuildStructure<'cached' | 'api'>>;
|
|
52
50
|
guild(mode: 'cache'): ReturnCache<GuildStructure<'cached'> | undefined>;
|
|
53
51
|
}
|
|
@@ -32,7 +32,9 @@ class MenuCommandContext extends basecontext_1.BaseContext {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
get t() {
|
|
35
|
-
return this.client.t(this.
|
|
35
|
+
return this.client.t(this.client.langs.preferGuildLocale
|
|
36
|
+
? (this.interaction.guildLocale ?? this.interaction.locale ?? this.client.langs.defaultLang ?? 'en-US')
|
|
37
|
+
: (this.interaction.locale ?? this.client.langs.defaultLang ?? 'en-US'));
|
|
36
38
|
}
|
|
37
39
|
get fullCommandName() {
|
|
38
40
|
return this.command.name;
|
|
@@ -21,7 +21,7 @@ export interface SeyfertBasicOption<T extends keyof ReturnOptionsTypes, R = true
|
|
|
21
21
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
export interface SeyfertBaseChoiceableOption<T extends keyof ReturnOptionsTypes, C = T extends ChoiceableTypes ? SeyfertChoice<ChoiceableValues[T]>[] : never, R = true | false, VC = never> {
|
|
24
|
+
export interface SeyfertBaseChoiceableOption<T extends keyof ReturnOptionsTypes, C = T extends ChoiceableTypes ? readonly SeyfertChoice<ChoiceableValues[T]>[] : never, R = true | false, VC = never> {
|
|
25
25
|
required?: R;
|
|
26
26
|
choices?: C;
|
|
27
27
|
value?: ValueCallback<T, C, VC>;
|
|
@@ -47,25 +47,25 @@ export interface ChoiceableValues {
|
|
|
47
47
|
[ApplicationCommandOptionType.Number]: number;
|
|
48
48
|
[ApplicationCommandOptionType.Integer]: number;
|
|
49
49
|
}
|
|
50
|
-
export type ValueCallback<T extends keyof ReturnOptionsTypes, C = T extends ChoiceableTypes ? SeyfertChoice<ChoiceableValues[T]>[] : keyof SeyfertChannelMap, I = any> = (data: {
|
|
50
|
+
export type ValueCallback<T extends keyof ReturnOptionsTypes, C = T extends ChoiceableTypes ? readonly SeyfertChoice<ChoiceableValues[T]>[] : keyof SeyfertChannelMap, I = any> = (data: {
|
|
51
51
|
context: CommandContext;
|
|
52
|
-
value: T extends ChoiceableTypes ? C extends SeyfertChoice<ChoiceableValues[T]>[] ? C[number]['value'] extends ReturnOptionsTypes[T] ? C[number]['value'] : never : never : C extends keyof SeyfertChannelMap ? SeyfertChannelMap[C] : never;
|
|
52
|
+
value: T extends ChoiceableTypes ? C extends readonly SeyfertChoice<ChoiceableValues[T]>[] ? C[number]['value'] extends ReturnOptionsTypes[T] ? C[number]['value'] : never : never : C extends keyof SeyfertChannelMap ? SeyfertChannelMap[C] : never;
|
|
53
53
|
}, ok: OKFunction<I>, fail: StopFunction) => Awaitable<void>;
|
|
54
|
-
export type SeyfertStringOption<T = SeyfertChoice<string>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.String, T, R, VC> & {
|
|
55
|
-
autocomplete?: AutocompleteCallback
|
|
56
|
-
onAutocompleteError?: OnAutocompleteErrorCallback
|
|
54
|
+
export type SeyfertStringOption<T = readonly SeyfertChoice<string>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.String, T, R, VC> & {
|
|
55
|
+
autocomplete?: AutocompleteCallback<string>;
|
|
56
|
+
onAutocompleteError?: OnAutocompleteErrorCallback<string>;
|
|
57
57
|
min_length?: number;
|
|
58
58
|
max_length?: number;
|
|
59
59
|
};
|
|
60
|
-
export type SeyfertIntegerOption<T = SeyfertChoice<number>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.Integer, T, R, VC> & {
|
|
61
|
-
autocomplete?: AutocompleteCallback
|
|
62
|
-
onAutocompleteError?: OnAutocompleteErrorCallback
|
|
60
|
+
export type SeyfertIntegerOption<T = readonly SeyfertChoice<number>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.Integer, T, R, VC> & {
|
|
61
|
+
autocomplete?: AutocompleteCallback<number>;
|
|
62
|
+
onAutocompleteError?: OnAutocompleteErrorCallback<number>;
|
|
63
63
|
min_value?: number;
|
|
64
64
|
max_value?: number;
|
|
65
65
|
};
|
|
66
|
-
export type SeyfertNumberOption<T = SeyfertChoice<number>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.Number, T, R, VC> & {
|
|
67
|
-
autocomplete?: AutocompleteCallback
|
|
68
|
-
onAutocompleteError?: OnAutocompleteErrorCallback
|
|
66
|
+
export type SeyfertNumberOption<T = readonly SeyfertChoice<number>[], R = boolean, VC = never> = SeyfertBaseChoiceableOption<ApplicationCommandOptionType.Number, T, R, VC> & {
|
|
67
|
+
autocomplete?: AutocompleteCallback<number>;
|
|
68
|
+
onAutocompleteError?: OnAutocompleteErrorCallback<number>;
|
|
69
69
|
min_value?: number;
|
|
70
70
|
max_value?: number;
|
|
71
71
|
};
|
|
@@ -81,12 +81,12 @@ export type SeyfertChannelOption<C = keyof SeyfertChannelMap, R = true | false,
|
|
|
81
81
|
name?: FlatObjectKeys<DefaultLocale>;
|
|
82
82
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
83
83
|
};
|
|
84
|
-
channel_types?: C[];
|
|
84
|
+
channel_types?: readonly C[];
|
|
85
85
|
};
|
|
86
86
|
export type SeyfertRoleOption<R = boolean> = SeyfertBasicOption<ApplicationCommandOptionType.Role, R>;
|
|
87
87
|
export type SeyfertMentionableOption<R = boolean> = SeyfertBasicOption<ApplicationCommandOptionType.Mentionable, R>;
|
|
88
88
|
export type SeyfertAttachmentOption<R = boolean> = SeyfertBasicOption<ApplicationCommandOptionType.Attachment, R>;
|
|
89
|
-
export declare function createStringOption<R extends boolean, C extends SeyfertChoice<string>[] = SeyfertChoice<string>[], VC = never>(data: SeyfertStringOption<C, R, VC>): {
|
|
89
|
+
export declare function createStringOption<R extends boolean, C extends readonly SeyfertChoice<string>[] = readonly SeyfertChoice<string>[], VC = never>(data: SeyfertStringOption<C, R, VC>): {
|
|
90
90
|
readonly type: ApplicationCommandOptionType.String;
|
|
91
91
|
readonly required?: R | undefined;
|
|
92
92
|
readonly choices?: C | undefined;
|
|
@@ -98,12 +98,12 @@ export declare function createStringOption<R extends boolean, C extends SeyfertC
|
|
|
98
98
|
name?: FlatObjectKeys<DefaultLocale>;
|
|
99
99
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
100
100
|
};
|
|
101
|
-
readonly autocomplete?: AutocompleteCallback
|
|
102
|
-
readonly onAutocompleteError?: OnAutocompleteErrorCallback
|
|
101
|
+
readonly autocomplete?: AutocompleteCallback<string>;
|
|
102
|
+
readonly onAutocompleteError?: OnAutocompleteErrorCallback<string>;
|
|
103
103
|
readonly min_length?: number;
|
|
104
104
|
readonly max_length?: number;
|
|
105
105
|
};
|
|
106
|
-
export declare function createIntegerOption<R extends boolean, C extends SeyfertChoice<number>[] = SeyfertChoice<number>[], VC = never>(data: SeyfertIntegerOption<C, R, VC>): {
|
|
106
|
+
export declare function createIntegerOption<R extends boolean, C extends readonly SeyfertChoice<number>[] = readonly SeyfertChoice<number>[], VC = never>(data: SeyfertIntegerOption<C, R, VC>): {
|
|
107
107
|
readonly type: ApplicationCommandOptionType.Integer;
|
|
108
108
|
readonly required?: R | undefined;
|
|
109
109
|
readonly choices?: C | undefined;
|
|
@@ -115,12 +115,12 @@ export declare function createIntegerOption<R extends boolean, C extends Seyfert
|
|
|
115
115
|
name?: FlatObjectKeys<DefaultLocale>;
|
|
116
116
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
117
117
|
};
|
|
118
|
-
readonly autocomplete?: AutocompleteCallback
|
|
119
|
-
readonly onAutocompleteError?: OnAutocompleteErrorCallback
|
|
118
|
+
readonly autocomplete?: AutocompleteCallback<number>;
|
|
119
|
+
readonly onAutocompleteError?: OnAutocompleteErrorCallback<number>;
|
|
120
120
|
readonly min_value?: number;
|
|
121
121
|
readonly max_value?: number;
|
|
122
122
|
};
|
|
123
|
-
export declare function createNumberOption<R extends boolean, C extends SeyfertChoice<number>[] = SeyfertChoice<number>[], VC = never>(data: SeyfertNumberOption<C, R, VC>): {
|
|
123
|
+
export declare function createNumberOption<R extends boolean, C extends readonly SeyfertChoice<number>[] = readonly SeyfertChoice<number>[], VC = never>(data: SeyfertNumberOption<C, R, VC>): {
|
|
124
124
|
readonly type: ApplicationCommandOptionType.Number;
|
|
125
125
|
readonly required?: R | undefined;
|
|
126
126
|
readonly choices?: C | undefined;
|
|
@@ -132,8 +132,8 @@ export declare function createNumberOption<R extends boolean, C extends SeyfertC
|
|
|
132
132
|
name?: FlatObjectKeys<DefaultLocale>;
|
|
133
133
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
134
134
|
};
|
|
135
|
-
readonly autocomplete?: AutocompleteCallback
|
|
136
|
-
readonly onAutocompleteError?: OnAutocompleteErrorCallback
|
|
135
|
+
readonly autocomplete?: AutocompleteCallback<number>;
|
|
136
|
+
readonly onAutocompleteError?: OnAutocompleteErrorCallback<number>;
|
|
137
137
|
readonly min_value?: number;
|
|
138
138
|
readonly max_value?: number;
|
|
139
139
|
};
|
|
@@ -148,7 +148,7 @@ export declare function createChannelOption<R extends boolean, C extends keyof S
|
|
|
148
148
|
name?: FlatObjectKeys<DefaultLocale>;
|
|
149
149
|
description?: FlatObjectKeys<DefaultLocale>;
|
|
150
150
|
};
|
|
151
|
-
readonly channel_types?: C[] | undefined;
|
|
151
|
+
readonly channel_types?: readonly C[] | undefined;
|
|
152
152
|
};
|
|
153
153
|
export declare function createBooleanOption<R extends boolean, T extends SeyfertBooleanOption<R> = SeyfertBooleanOption<R>>(data: T): T & {
|
|
154
154
|
readonly type: ApplicationCommandOptionType.Boolean;
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import type { CategoryChannelStructure, DirectoryChannelStructure, DMChannelStructure, ForumChannelStructure, MediaChannelStructure, NewsChannelStructure, StageChannelStructure, TextGuildChannelStructure, ThreadChannelStructure, VoiceChannelStructure } from '../../client';
|
|
2
2
|
import type { BaseClient } from '../../client/base';
|
|
3
|
+
import type { RegisteredPluginContext, RegisteredPluginExtension, SeyfertRegistry } from '../../client/plugins';
|
|
3
4
|
import type { IsStrictlyUndefined } from '../../common';
|
|
4
5
|
import type { ChannelType } from '../../types';
|
|
5
|
-
import type {
|
|
6
|
+
import type { ResolvedRegisteredMiddlewares } from '../decorators';
|
|
6
7
|
export type OKFunction<T> = (value: T) => void;
|
|
7
|
-
export type StopFunction = (error
|
|
8
|
+
export type StopFunction = (error?: string | null) => void;
|
|
8
9
|
export type NextFunction<T = unknown> = IsStrictlyUndefined<T> extends true ? () => void : (data: T) => void;
|
|
9
|
-
export type PassFunction = () => void;
|
|
10
10
|
export type InferWithPrefix = InternalOptions extends {
|
|
11
11
|
withPrefix: infer P;
|
|
12
12
|
} ? P : false;
|
|
13
13
|
export interface GlobalMetadata {
|
|
14
14
|
}
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
export type DefaultLocale = SeyfertRegistry extends {
|
|
16
|
+
langs: infer L extends Record<string, any>;
|
|
17
|
+
} ? L : {};
|
|
18
|
+
export interface ExtendContext extends RegisteredPluginContext {
|
|
18
19
|
}
|
|
19
20
|
export interface ExtraProps {
|
|
20
21
|
}
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
declare const __seyfertClientType: unique symbol;
|
|
23
|
+
type RegisteredClient = SeyfertRegistry extends {
|
|
24
|
+
client: infer C;
|
|
25
|
+
} ? [C] extends [{
|
|
26
|
+
readonly [__seyfertClientType]?: infer T;
|
|
27
|
+
}] ? [T] extends [never] ? BaseClient : unknown extends T ? C extends BaseClient ? C : BaseClient : T & Omit<C, typeof __seyfertClientType> : C extends BaseClient ? C : BaseClient : BaseClient;
|
|
28
|
+
export type UsingClient = BaseClient & RegisteredPluginExtension & RegisteredClient;
|
|
23
29
|
export interface CustomWorkerClientEvents {
|
|
24
30
|
}
|
|
25
31
|
export interface CustomWorkerManagerEvents {
|
|
@@ -28,8 +34,10 @@ export interface ExtendedRC {
|
|
|
28
34
|
}
|
|
29
35
|
export interface ExtendedRCLocations {
|
|
30
36
|
}
|
|
31
|
-
export type ParseClient<T extends BaseClient> = T
|
|
32
|
-
|
|
37
|
+
export type ParseClient<T extends BaseClient> = T & {
|
|
38
|
+
readonly [__seyfertClientType]?: T;
|
|
39
|
+
};
|
|
40
|
+
export type ParseGlobalMiddlewares<T extends Record<string, AnyMiddlewareContext>> = {
|
|
33
41
|
[K in keyof T]: MetadataMiddleware<T[K]>;
|
|
34
42
|
};
|
|
35
43
|
export interface InternalOptions {
|
|
@@ -40,16 +48,29 @@ export type MiddlewareContext<T = any, C = any> = (context: {
|
|
|
40
48
|
context: C;
|
|
41
49
|
next: NextFunction<T>;
|
|
42
50
|
stop: StopFunction;
|
|
43
|
-
pass: PassFunction;
|
|
44
51
|
}) => any;
|
|
45
|
-
export type
|
|
46
|
-
|
|
52
|
+
export type AnyMiddlewareContext = (context: {
|
|
53
|
+
context: any;
|
|
54
|
+
next: any;
|
|
55
|
+
stop: StopFunction;
|
|
56
|
+
}) => any;
|
|
57
|
+
export type MetadataMiddleware<T extends AnyMiddlewareContext> = T extends (context: infer Payload) => any ? Payload extends {
|
|
58
|
+
next: (...args: infer Args) => unknown;
|
|
59
|
+
} ? IsStrictlyUndefined<Args[0]> extends true ? never : Args[0] : never : never;
|
|
60
|
+
type MetadataForMiddleware<T extends keyof ResolvedRegisteredMiddlewares> = ResolvedRegisteredMiddlewares[T] extends infer Middleware extends AnyMiddlewareContext ? MetadataMiddleware<Middleware> : never;
|
|
61
|
+
type OmitNever<T extends object> = {
|
|
62
|
+
[key in keyof T as [T[key]] extends [never] ? never : key]: T[key];
|
|
63
|
+
};
|
|
64
|
+
type MiddlewareMetadata<T extends keyof ResolvedRegisteredMiddlewares> = OmitNever<{
|
|
65
|
+
[key in T]: MetadataForMiddleware<key>;
|
|
66
|
+
}>;
|
|
67
|
+
type CommandMetadataFromUnion<T extends keyof ResolvedRegisteredMiddlewares> = [T] extends [never] ? {} : MiddlewareMetadata<T>;
|
|
68
|
+
type CommandMetadataFromTuple<T extends readonly (keyof ResolvedRegisteredMiddlewares)[]> = T extends readonly [
|
|
47
69
|
infer first,
|
|
48
70
|
...infer rest
|
|
49
|
-
] ? first extends keyof
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
export type MessageCommandOptionErrors = ['CHANNEL_TYPES', type: ChannelType[]] | ['STRING_MIN_LENGTH', min: number] | ['STRING_MAX_LENGTH', max: number] | ['STRING_INVALID_CHOICE', choices: readonly {
|
|
71
|
+
] ? first extends keyof ResolvedRegisteredMiddlewares ? MiddlewareMetadata<first> & (rest extends readonly (keyof ResolvedRegisteredMiddlewares)[] ? CommandMetadataFromTuple<rest> : never) : {} : {};
|
|
72
|
+
export type CommandMetadata<T extends readonly (keyof ResolvedRegisteredMiddlewares)[] | keyof ResolvedRegisteredMiddlewares> = [T] extends [never] ? {} : [T] extends [readonly (keyof ResolvedRegisteredMiddlewares)[]] ? CommandMetadataFromTuple<T> : [T] extends [keyof ResolvedRegisteredMiddlewares] ? CommandMetadataFromUnion<T> : {};
|
|
73
|
+
export type MessageCommandOptionErrors = ['CHANNEL_TYPES', type: readonly ChannelType[]] | ['STRING_MIN_LENGTH', min: number] | ['STRING_MAX_LENGTH', max: number] | ['STRING_INVALID_CHOICE', choices: readonly {
|
|
53
74
|
name: string;
|
|
54
75
|
value: string;
|
|
55
76
|
}[]] | ['NUMBER_NAN', value: string] | ['NUMBER_MIN_VALUE', min: number] | ['NUMBER_MAX_VALUE', max: number] | ['NUMBER_INVALID_CHOICE', choices: readonly {
|
|
@@ -84,3 +105,4 @@ export interface SeyfertChannelMap {
|
|
|
84
105
|
[ChannelType.GuildForum]: ForumChannelStructure;
|
|
85
106
|
[ChannelType.GuildMedia]: MediaChannelStructure;
|
|
86
107
|
}
|
|
108
|
+
export {};
|