dfx 1.0.6 → 1.0.8
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/dist/Cache/driver.d.ts +24 -0
- package/dist/Cache/driver.d.ts.map +1 -0
- package/dist/Cache/memory.d.ts +5 -0
- package/dist/Cache/memory.d.ts.map +1 -0
- package/dist/Cache/memoryTTL.d.ts +23 -0
- package/dist/Cache/memoryTTL.d.ts.map +1 -0
- package/dist/Cache/prelude.d.ts +32 -0
- package/dist/Cache/prelude.d.ts.map +1 -0
- package/dist/Cache.d.ts +81 -0
- package/dist/Cache.d.ts.map +1 -0
- package/dist/DiscordConfig.d.ts +35 -0
- package/dist/DiscordConfig.d.ts.map +1 -0
- package/dist/DiscordGateway/DiscordWS.d.ts +37 -0
- package/dist/DiscordGateway/DiscordWS.d.ts.map +1 -0
- package/dist/DiscordGateway/Messaging.d.ts +587 -0
- package/dist/DiscordGateway/Messaging.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/StateStore.d.ts +24 -0
- package/dist/DiscordGateway/Shard/StateStore.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/heartbeats.d.ts +8 -0
- package/dist/DiscordGateway/Shard/heartbeats.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/identify.d.ts +12 -0
- package/dist/DiscordGateway/Shard/identify.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/sendEvents.d.ts +8 -0
- package/dist/DiscordGateway/Shard/sendEvents.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard/utils.d.ts +6 -0
- package/dist/DiscordGateway/Shard/utils.d.ts.map +1 -0
- package/dist/DiscordGateway/Shard.d.ts +29 -0
- package/dist/DiscordGateway/Shard.d.ts.map +1 -0
- package/dist/DiscordGateway/ShardStore.d.ts +19 -0
- package/dist/DiscordGateway/ShardStore.d.ts.map +1 -0
- package/dist/DiscordGateway/Sharder.d.ts +14 -0
- package/dist/DiscordGateway/Sharder.d.ts.map +1 -0
- package/dist/DiscordGateway.d.ts +33 -0
- package/dist/DiscordGateway.d.ts.map +1 -0
- package/dist/DiscordREST/Generated.d.ts +5577 -0
- package/dist/DiscordREST/Generated.d.ts.map +1 -0
- package/dist/DiscordREST/Generated.js +3 -2
- package/dist/DiscordREST/Generated.js.map +1 -1
- package/dist/DiscordREST/utils.d.ts +14 -0
- package/dist/DiscordREST/utils.d.ts.map +1 -0
- package/dist/DiscordREST.d.ts +22 -0
- package/dist/DiscordREST.d.ts.map +1 -0
- package/dist/Helpers/flags.d.ts +28 -0
- package/dist/Helpers/flags.d.ts.map +1 -0
- package/dist/Helpers/intents.d.ts +25 -0
- package/dist/Helpers/intents.d.ts.map +1 -0
- package/dist/Helpers/interactions.d.ts +116 -0
- package/dist/Helpers/interactions.d.ts.map +1 -0
- package/dist/Helpers/members.d.ts +10 -0
- package/dist/Helpers/members.d.ts.map +1 -0
- package/dist/Helpers/permissions.d.ts +42 -0
- package/dist/Helpers/permissions.d.ts.map +1 -0
- package/dist/Helpers/ui.d.ts +105 -0
- package/dist/Helpers/ui.d.ts.map +1 -0
- package/dist/Interactions/builder.d.ts +48 -0
- package/dist/Interactions/builder.d.ts.map +1 -0
- package/dist/Interactions/commandHelper.d.ts +83 -0
- package/dist/Interactions/commandHelper.d.ts.map +1 -0
- package/dist/Interactions/context.d.ts +53 -0
- package/dist/Interactions/context.d.ts.map +1 -0
- package/dist/Interactions/definitions.d.ts +43 -0
- package/dist/Interactions/definitions.d.ts.map +1 -0
- package/dist/Interactions/error.d.ts +2 -0
- package/dist/Interactions/error.d.ts.map +1 -0
- package/dist/Interactions/gateway.d.ts +20 -0
- package/dist/Interactions/gateway.d.ts.map +1 -0
- package/dist/Interactions/handlers.d.ts +15 -0
- package/dist/Interactions/handlers.d.ts.map +1 -0
- package/dist/Interactions/index.d.ts +17 -0
- package/dist/Interactions/index.d.ts.map +1 -0
- package/dist/Interactions/utils.d.ts +61 -0
- package/dist/Interactions/utils.d.ts.map +1 -0
- package/dist/Interactions/webhook.d.ts +71 -0
- package/dist/Interactions/webhook.d.ts.map +1 -0
- package/dist/RateLimit/memory.d.ts +3 -0
- package/dist/RateLimit/memory.d.ts.map +1 -0
- package/dist/RateLimit/utils.d.ts +3 -0
- package/dist/RateLimit/utils.d.ts.map +1 -0
- package/dist/RateLimit.d.ts +30 -0
- package/dist/RateLimit.d.ts.map +1 -0
- package/dist/gateway.d.ts +19 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/types.d.ts +2458 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/Effect.d.ts +5 -0
- package/dist/utils/Effect.d.ts.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +1 -1
- package/dist/webhooks.d.ts +8 -0
- package/dist/webhooks.d.ts.map +1 -0
- package/package.json +8 -8
- package/src/DiscordREST/Generated.ts +7 -5
- package/src/version.ts +1 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Discord from "../types.ts";
|
|
3
|
+
/**
|
|
4
|
+
* A constant of all the permissions
|
|
5
|
+
*/
|
|
6
|
+
export declare const ALL: bigint;
|
|
7
|
+
/**
|
|
8
|
+
* Check if a flag exists in the permissions.
|
|
9
|
+
*/
|
|
10
|
+
export declare const has: (flag: bigint | string) => (bits: bigint | string) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Convert a permissions bitfield to a list of flag names.
|
|
13
|
+
*/
|
|
14
|
+
export declare const toList: (bitfield: bigint) => ("Stream" | "CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[];
|
|
15
|
+
/**
|
|
16
|
+
* Convert a list of flag names to a bitfield.
|
|
17
|
+
*/
|
|
18
|
+
export declare const fromList: (list: ("Stream" | "CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[]) => bigint;
|
|
19
|
+
/**
|
|
20
|
+
* Reduce a list of roles to a bitfield of all the permissions added together.
|
|
21
|
+
*/
|
|
22
|
+
export declare const forRoles: (roles: Array<Discord.GuildRoleResponse>) => bigint;
|
|
23
|
+
/**
|
|
24
|
+
* From a list of roles, calculate the permissions bitfield for the member.
|
|
25
|
+
*/
|
|
26
|
+
export declare const forMember: (roles: Array<Discord.GuildRoleResponse>) => (member: Discord.GuildMemberResponse) => bigint;
|
|
27
|
+
/**
|
|
28
|
+
* From a list of roles and a channel, calculate the permission bitfield for
|
|
29
|
+
* the guild member or role for that channel.
|
|
30
|
+
*/
|
|
31
|
+
export declare const forChannel: (roles: Array<Discord.GuildRoleResponse>) => ({ guild_id, permission_overwrites }: Discord.GuildChannelResponse) => (memberOrRole: Discord.GuildMemberResponse | Discord.GuildRoleResponse) => bigint;
|
|
32
|
+
/**
|
|
33
|
+
* Apply permission overwrites to a bitfield.
|
|
34
|
+
*/
|
|
35
|
+
export declare const applyOverwrites: (permissions: bigint) => (overwrites: ReadonlyArray<Discord.ChannelPermissionOverwriteResponse>) => bigint;
|
|
36
|
+
interface RolesCache<E> {
|
|
37
|
+
getForParent: (parentId: string) => Effect.Effect<ReadonlyMap<string, Discord.GuildRoleResponse>, E>;
|
|
38
|
+
}
|
|
39
|
+
export declare const hasInChannel: <E>(rolesCache: RolesCache<E>, permission: bigint) => (channel: Discord.GuildChannelResponse, memberOrRole: Discord.GuildMemberResponse | Discord.GuildRoleResponse) => Effect.Effect<boolean, E, never>;
|
|
40
|
+
export declare const hasInGuild: <E>(rolesCache: RolesCache<E>, permission: bigint) => (guildId: Discord.Snowflake, member: Discord.GuildMemberResponse) => Effect.Effect<boolean, E, never>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=permissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/Helpers/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AAEtC;;GAEG;AACH,eAAO,MAAM,GAAG,QAAiC,CAAA;AAEjD;;GAEG;AACH,eAAO,MAAM,GAAG,8BA0CkC,qBAC1C,YA3C0B,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,MAAM,8gCAAoC,CAAA;AAEvD;;GAEG;AACH,eAAO,MAAM,QAAQ,0gCAA4C,CAAA;AAEjE;;GAEG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAI7D,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,SAAS,GACnB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,MACvC,QAAQ,OAAO,CAAC,mBAAmB,WACU,CAAA;AAuBhD;;;GAGG;AACH,eAAO,MAAM,UAAU,GACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,MACvC,qCAAqC,OAAO,CAAC,oBAAoB,MACjE,cAAc,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,WA8BrE,CAAA;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,GACzB,aAAa,MAAM,MACnB,YAAY,aAAa,CAAC,OAAO,CAAC,kCAAkC,CAAC,WAKnE,CAAA;AAEL,UAAU,UAAU,CAAC,CAAC;IACpB,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,KACb,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAA;CACtE;AAED,eAAO,MAAM,YAAY,GACtB,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,MAE/C,SAAS,OAAO,CAAC,oBAAoB,EACrC,cAAc,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,qCAOnE,CAAA;AAEN,eAAO,MAAM,UAAU,GACpB,CAAC,EAAE,YAAY,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,MAAM,MAChD,SAAS,OAAO,CAAC,SAAS,EAAE,QAAQ,OAAO,CAAC,mBAAmB,qCAQ5D,CAAA"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { ActionRowComponentForMessageRequest, ActionRowComponentForModalRequest, ButtonComponentForMessageRequest, ChannelSelectComponentForMessageRequest, ContainerComponentForMessageRequest, FileComponentForMessageRequest, MediaGalleryComponentForMessageRequest, MentionableSelectComponentForMessageRequest, MessageCreateRequest, PollCreateRequest, PollMediaCreateRequest, RoleSelectComponentForMessageRequest, SectionComponentForMessageRequest, SeparatorComponentForMessageRequest, StringSelectComponentForMessageRequest, TextDisplayComponentForMessageRequest, TextInputComponentForModalRequest, ThumbnailComponentForMessageRequest, UserSelectComponentForMessageRequest } from "../types.ts";
|
|
2
|
+
import { TextInputStyleTypes, MessageComponentTypes, MessageFlags } from "../types.ts";
|
|
3
|
+
type ActionRowComponents = ReadonlyArray<ActionRowComponentForMessageRequest["components"][number] | ActionRowComponentForModalRequest["components"][number]>;
|
|
4
|
+
/**
|
|
5
|
+
* Helper to create an Action Row.
|
|
6
|
+
*/
|
|
7
|
+
export declare const row: <const C extends ActionRowComponents>(components: C) => {
|
|
8
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
9
|
+
readonly components: C;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Helper to create an Action Row grid.
|
|
13
|
+
*/
|
|
14
|
+
export declare const grid: <C extends ActionRowComponents>(items: ReadonlyArray<C>) => ReadonlyArray<{
|
|
15
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
16
|
+
readonly components: C;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Helper to create a single column of components
|
|
20
|
+
*/
|
|
21
|
+
export declare const singleColumn: <C extends ActionRowComponents>(items: C) => ReadonlyArray<{
|
|
22
|
+
readonly type: typeof MessageComponentTypes.ACTION_ROW;
|
|
23
|
+
readonly components: C;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Helper to create a button component.
|
|
27
|
+
*/
|
|
28
|
+
export declare const button: (options: Partial<ButtonComponentForMessageRequest>) => ButtonComponentForMessageRequest;
|
|
29
|
+
/**
|
|
30
|
+
* Helper to create a select component.
|
|
31
|
+
*/
|
|
32
|
+
export declare const select: (options: Omit<StringSelectComponentForMessageRequest, "type">) => StringSelectComponentForMessageRequest;
|
|
33
|
+
/**
|
|
34
|
+
* Helper to create a select component.
|
|
35
|
+
*/
|
|
36
|
+
export declare const userSelect: (options: Omit<UserSelectComponentForMessageRequest, "type">) => UserSelectComponentForMessageRequest;
|
|
37
|
+
/**
|
|
38
|
+
* Helper to create a select component.
|
|
39
|
+
*/
|
|
40
|
+
export declare const roleSelect: (options: Omit<RoleSelectComponentForMessageRequest, "type">) => RoleSelectComponentForMessageRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Helper to create a select component.
|
|
43
|
+
*/
|
|
44
|
+
export declare const mentionableSelect: (options: Omit<MentionableSelectComponentForMessageRequest, "type">) => MentionableSelectComponentForMessageRequest;
|
|
45
|
+
/**
|
|
46
|
+
* Helper to create a select component.
|
|
47
|
+
*/
|
|
48
|
+
export declare const channelSelect: (options: Omit<ChannelSelectComponentForMessageRequest, "type">) => ChannelSelectComponentForMessageRequest;
|
|
49
|
+
type TextInputOpts = Omit<TextInputComponentForModalRequest, "type" | "style"> & {
|
|
50
|
+
style?: TextInputStyleTypes;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Helper to create a text input
|
|
54
|
+
*/
|
|
55
|
+
export declare const textInput: (input: TextInputOpts) => TextInputComponentForModalRequest;
|
|
56
|
+
/**
|
|
57
|
+
* Helper to create a poll
|
|
58
|
+
*/
|
|
59
|
+
export declare const poll: (input: Omit<PollCreateRequest, "answers"> & {
|
|
60
|
+
readonly answers: ReadonlyArray<PollMediaCreateRequest>;
|
|
61
|
+
}) => PollCreateRequest;
|
|
62
|
+
/**
|
|
63
|
+
* Helper to create a media gallery
|
|
64
|
+
*/
|
|
65
|
+
export declare const mediaGallery: (options: Omit<MediaGalleryComponentForMessageRequest, "type">) => MediaGalleryComponentForMessageRequest;
|
|
66
|
+
/**
|
|
67
|
+
* Helper to create a file component
|
|
68
|
+
*/
|
|
69
|
+
export declare const file: (options: Omit<FileComponentForMessageRequest, "type">) => FileComponentForMessageRequest;
|
|
70
|
+
/**
|
|
71
|
+
* Helper to create a container component
|
|
72
|
+
*/
|
|
73
|
+
export declare const container: (options: Omit<ContainerComponentForMessageRequest, "type">) => ContainerComponentForMessageRequest;
|
|
74
|
+
/**
|
|
75
|
+
* Helper to create a section component
|
|
76
|
+
*/
|
|
77
|
+
export declare const section: (options: Omit<SectionComponentForMessageRequest, "type">) => SectionComponentForMessageRequest;
|
|
78
|
+
/**
|
|
79
|
+
* Helper to create a thumbnail component
|
|
80
|
+
*/
|
|
81
|
+
export declare const thumbnail: (options: {
|
|
82
|
+
readonly url: string;
|
|
83
|
+
readonly description?: string | undefined;
|
|
84
|
+
readonly spoiler?: boolean | undefined;
|
|
85
|
+
}) => ThumbnailComponentForMessageRequest;
|
|
86
|
+
/**
|
|
87
|
+
* Helper to create a separator component
|
|
88
|
+
*/
|
|
89
|
+
export declare const seperator: (options?: Omit<SeparatorComponentForMessageRequest, "type">) => SeparatorComponentForMessageRequest;
|
|
90
|
+
/**
|
|
91
|
+
* Helper to create a text display component
|
|
92
|
+
*/
|
|
93
|
+
export declare const textDisplay: (content: string) => TextDisplayComponentForMessageRequest;
|
|
94
|
+
type MessageComponents = NonNullable<MessageCreateRequest["components"]>[number];
|
|
95
|
+
/**
|
|
96
|
+
* Create a components v2 message
|
|
97
|
+
*/
|
|
98
|
+
export declare const components: <const C extends ReadonlyArray<MessageComponents>>(items: C, options?: {
|
|
99
|
+
readonly ephemeral?: boolean | undefined;
|
|
100
|
+
}) => {
|
|
101
|
+
readonly flags: MessageFlags;
|
|
102
|
+
readonly components: C;
|
|
103
|
+
};
|
|
104
|
+
export {};
|
|
105
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/Helpers/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import * as Chunk from "effect/Chunk";
|
|
2
|
+
import type * as Cause from "effect/Cause";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import type { DiscordRESTError } from "../DiscordREST.ts";
|
|
5
|
+
import { DiscordREST } from "../DiscordREST.ts";
|
|
6
|
+
import type * as D from "./definitions.ts";
|
|
7
|
+
import type * as Discord from "../types.ts";
|
|
8
|
+
type ExtractTag<A> = A extends {
|
|
9
|
+
_tag: infer Tag;
|
|
10
|
+
} ? Tag extends string ? Tag : never : never;
|
|
11
|
+
export declare class InteractionBuilder<R, E, TE> {
|
|
12
|
+
readonly definitions: Chunk.Chunk<readonly [
|
|
13
|
+
handler: D.InteractionDefinition<R, E>,
|
|
14
|
+
transform: (self: Effect.Effect<any, any, any>) => Effect.Effect<void, TE, R>
|
|
15
|
+
]>;
|
|
16
|
+
readonly transform: (self: Effect.Effect<any, any, any>) => Effect.Effect<void, TE, R>;
|
|
17
|
+
constructor(definitions: Chunk.Chunk<readonly [
|
|
18
|
+
handler: D.InteractionDefinition<R, E>,
|
|
19
|
+
transform: (self: Effect.Effect<any, any, any>) => Effect.Effect<void, TE, R>
|
|
20
|
+
]>, transform: (self: Effect.Effect<any, any, any>) => Effect.Effect<void, TE, R>);
|
|
21
|
+
add<R1, E1>(definition: D.InteractionDefinition<R1, E1>): InteractionBuilder<R | R1, E | E1, TE | E1>;
|
|
22
|
+
concat<R1, E1, TE1>(builder: InteractionBuilder<R1, E1, TE1>): InteractionBuilder<R | R1, E | E1, TE | TE1>;
|
|
23
|
+
private transformTransform;
|
|
24
|
+
private transformHandlers;
|
|
25
|
+
catchAllCause<R1, E1>(f: (cause: Cause.Cause<TE>) => Effect.Effect<void, E1, R1>): InteractionBuilder<R | R1, E, E1>;
|
|
26
|
+
catchAllCauseRespond<R1, E1>(f: (cause: Cause.Cause<E>) => Effect.Effect<Discord.CreateInteractionResponseRequest, E1, R1>): InteractionBuilder<R | R1, E1, Exclude<TE, Exclude<E, E1>> | Exclude<E1, E>>;
|
|
27
|
+
catchAll<R1, E1>(f: (error: TE) => Effect.Effect<void, E1, R1>): InteractionBuilder<R | R1, E, E1>;
|
|
28
|
+
catchAllRespond<R1, E1>(f: (error: E) => Effect.Effect<Discord.CreateInteractionResponseRequest, E1, R1>): InteractionBuilder<R | R1, E1, Exclude<TE, Exclude<E, E1>> | Exclude<E1, E>>;
|
|
29
|
+
catchTag<T extends ExtractTag<E>, R1, E1>(tag: T, f: (error: Extract<TE, {
|
|
30
|
+
_tag: T;
|
|
31
|
+
}>) => Effect.Effect<void, E1, R1>): InteractionBuilder<R | R1, E, E1 | Exclude<TE, {
|
|
32
|
+
_tag: T;
|
|
33
|
+
}>>;
|
|
34
|
+
catchTagRespond<T extends ExtractTag<E>, R1, E1>(tag: T, f: (error: Extract<E, {
|
|
35
|
+
_tag: T;
|
|
36
|
+
}>) => Effect.Effect<Discord.CreateInteractionResponseRequest, E1, R1>): InteractionBuilder<R | R1, E1 | Exclude<E, {
|
|
37
|
+
_tag: T;
|
|
38
|
+
}>, Exclude<TE, Exclude<E, E1 | Exclude<E, {
|
|
39
|
+
_tag: T;
|
|
40
|
+
}>>> | Exclude<E1, E> | Exclude<Exclude<E, {
|
|
41
|
+
_tag: T;
|
|
42
|
+
}>, E>>;
|
|
43
|
+
get syncGlobal(): Effect.Effect<Discord.BulkSetApplicationCommands200, import("effect/unstable/http/HttpClientError").HttpClientError | Discord.DiscordRestError<"RatelimitedResponse", Discord.RatelimitedResponse> | Discord.DiscordRestError<"ErrorResponse", Discord.ErrorResponse>, DiscordREST>;
|
|
44
|
+
syncGuild(appId: Discord.Snowflake, guildId: Discord.Snowflake): Effect.Effect<Discord.BulkSetGuildApplicationCommands200, import("effect/unstable/http/HttpClientError").HttpClientError | Discord.DiscordRestError<"RatelimitedResponse", Discord.RatelimitedResponse> | Discord.DiscordRestError<"ErrorResponse", Discord.ErrorResponse>, DiscordREST>;
|
|
45
|
+
}
|
|
46
|
+
export declare const builder: InteractionBuilder<never, never, DiscordRESTError>;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/Interactions/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as Option from "effect/Option";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import { type DiscordSubCommand, type DiscordApplicationCommand, type DiscordInteraction } from "./context.ts";
|
|
4
|
+
import type * as Discord from "../types.ts";
|
|
5
|
+
import type { HashMap } from "effect/HashMap";
|
|
6
|
+
export declare class CommandHelper<A> {
|
|
7
|
+
readonly interaction: Discord.APIInteraction;
|
|
8
|
+
constructor(interaction: Discord.APIInteraction);
|
|
9
|
+
readonly data: Discord.APIApplicationCommandInteraction["data"];
|
|
10
|
+
readonly target: CommandTypeMap<A, {
|
|
11
|
+
[Discord.ApplicationCommandType
|
|
12
|
+
.CHAT]: Discord.APIChatInputApplicationCommandGuildInteraction["data"];
|
|
13
|
+
[Discord.ApplicationCommandType.MESSAGE]: Discord.MessageResponse;
|
|
14
|
+
[Discord.ApplicationCommandType.USER]: Discord.UserResponse;
|
|
15
|
+
[Discord.ApplicationCommandType.PRIMARY_ENTRY_POINT]: undefined;
|
|
16
|
+
}>;
|
|
17
|
+
resolve<T>(name: AllResolvables<A>["name"], f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => T | undefined): Option.Option<T>;
|
|
18
|
+
resolvedValues<T>(f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => T | undefined): Option.Option<ReadonlyArray<T>>;
|
|
19
|
+
option(name: AllCommandOptions<A>["name"]): Option.Option<Discord.APIApplicationCommandInteractionDataOption>;
|
|
20
|
+
optionValue<N extends AllRequiredCommandOptions<A>["name"]>(name: N): CommandValue<A, N>;
|
|
21
|
+
optionValueOptional<N extends AllCommandOptions<A>["name"]>(name: N): Option.Option<CommandValue<A, N>>;
|
|
22
|
+
optionValueOrElse<N extends AllCommandOptions<A>["name"], const OrElse>(name: N, orElse: () => OrElse): CommandValue<A, N>;
|
|
23
|
+
subCommands<NER extends SubCommandNames<A> extends never ? never : Record<SubCommandNames<A>, Effect.Effect<Discord.CreateInteractionResponseRequest, any, any>>>(commands: NER): Effect.Effect<Effect.Success<NER[keyof NER]>, Effect.Error<NER[keyof NER]>, Exclude<Effect.Services<NER[keyof NER]>, DiscordSubCommand> | DiscordInteraction | DiscordApplicationCommand>;
|
|
24
|
+
get optionsMap(): HashMap<string, string | undefined>;
|
|
25
|
+
}
|
|
26
|
+
export type CommandHandlerFn<R, E, A> = (i: CommandHelper<A>) => Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
|
|
27
|
+
interface CommandOption {
|
|
28
|
+
readonly type: any;
|
|
29
|
+
readonly name: string;
|
|
30
|
+
readonly options?: ReadonlyArray<CommandOption>;
|
|
31
|
+
}
|
|
32
|
+
type CommandTypeMap<A, Options extends Record<Discord.ApplicationCommandType, any>> = A extends {
|
|
33
|
+
readonly type: infer T;
|
|
34
|
+
} ? T extends keyof Options ? Options[T] : never : Options[typeof Discord.ApplicationCommandType.CHAT];
|
|
35
|
+
type SubCommands<A> = A extends {
|
|
36
|
+
readonly type: typeof Discord.ApplicationCommandOptionType.SUB_COMMAND;
|
|
37
|
+
readonly options?: ReadonlyArray<CommandOption>;
|
|
38
|
+
} ? A : A extends {
|
|
39
|
+
readonly options: ReadonlyArray<CommandOption>;
|
|
40
|
+
} ? SubCommands<A["options"][number]> : never;
|
|
41
|
+
type SubCommandNames<A> = Option<SubCommands<A>>["name"];
|
|
42
|
+
type CommandOptionType = Exclude<Discord.ApplicationCommandOptionType, typeof Discord.ApplicationCommandOptionType.SUB_COMMAND | typeof Discord.ApplicationCommandOptionType.SUB_COMMAND_GROUP>;
|
|
43
|
+
type CommandOptions<A> = OptionsWithLiteral<A, {
|
|
44
|
+
readonly type: CommandOptionType;
|
|
45
|
+
}>;
|
|
46
|
+
type SubCommandOptions<A> = Extract<Option<Exclude<SubCommands<A>["options"], undefined>[number]>, {
|
|
47
|
+
readonly type: CommandOptionType;
|
|
48
|
+
}>;
|
|
49
|
+
type AllCommandOptions<A> = CommandOptions<A> | SubCommandOptions<A>;
|
|
50
|
+
type CommandWithName<A, N> = Extract<AllCommandOptions<A>, {
|
|
51
|
+
readonly name: N;
|
|
52
|
+
}>;
|
|
53
|
+
type OptionTypeValue = {
|
|
54
|
+
[Discord.ApplicationCommandOptionType.BOOLEAN]: boolean;
|
|
55
|
+
[Discord.ApplicationCommandOptionType.INTEGER]: number;
|
|
56
|
+
[Discord.ApplicationCommandOptionType.NUMBER]: number;
|
|
57
|
+
};
|
|
58
|
+
type CommandValue<A, N> = CommandWithName<A, N>["type"] extends keyof OptionTypeValue ? OptionTypeValue[CommandWithName<A, N>["type"]] : string;
|
|
59
|
+
type RequiredCommandOptions<A> = OptionsWithLiteral<A, {
|
|
60
|
+
readonly type: CommandOptionType;
|
|
61
|
+
readonly required: true;
|
|
62
|
+
}>;
|
|
63
|
+
type RequiredSubCommandOptions<A> = Extract<SubCommandOptions<A>, {
|
|
64
|
+
readonly required: true;
|
|
65
|
+
}>;
|
|
66
|
+
type AllRequiredCommandOptions<A> = RequiredCommandOptions<A> | RequiredSubCommandOptions<A>;
|
|
67
|
+
type ResolvableType = typeof Discord.ApplicationCommandOptionType.ROLE | typeof Discord.ApplicationCommandOptionType.USER | typeof Discord.ApplicationCommandOptionType.MENTIONABLE | typeof Discord.ApplicationCommandOptionType.CHANNEL;
|
|
68
|
+
type Resolvables<A> = OptionsWithLiteral<A, {
|
|
69
|
+
readonly type: ResolvableType;
|
|
70
|
+
}>;
|
|
71
|
+
type SubCommandResolvables<A> = Extract<Option<Exclude<SubCommands<A>["options"], undefined>[number]>, {
|
|
72
|
+
readonly type: ResolvableType;
|
|
73
|
+
}>;
|
|
74
|
+
type AllResolvables<A> = Resolvables<A> | SubCommandResolvables<A>;
|
|
75
|
+
type StringLiteral<T> = T extends string ? string extends T ? never : T : never;
|
|
76
|
+
type Option<A> = A extends {
|
|
77
|
+
readonly name: infer N;
|
|
78
|
+
} ? N extends StringLiteral<N> ? A : never : never;
|
|
79
|
+
type OptionsWithLiteral<A, T> = A extends {
|
|
80
|
+
readonly options: ReadonlyArray<CommandOption>;
|
|
81
|
+
} ? Extract<A["options"][number], Option<A["options"][number]> & T> : never;
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=commandHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandHelper.d.ts","sourceRoot":"","sources":["../../src/Interactions/commandHelper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type * as Discord from "../types.ts";
|
|
2
|
+
import type { NoSuchElementError } from "effect/Cause";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
5
|
+
declare const Interaction_base: ServiceMap.ServiceClass<Interaction, "dfx/Interactions/Interaction", Discord.APIInteraction>;
|
|
6
|
+
export declare class Interaction extends Interaction_base {
|
|
7
|
+
}
|
|
8
|
+
export type DiscordInteraction = Interaction;
|
|
9
|
+
declare const ApplicationCommand_base: ServiceMap.ServiceClass<ApplicationCommand, "dfx/Interactions/ApplicationCommand", Discord.APIChatInputApplicationCommandInteractionData | import("discord-api-types/v10").APIMessageApplicationCommandInteractionData | import("discord-api-types/v10").APIUserApplicationCommandInteractionData | import("discord-api-types/v10").APIPrimaryEntryPointCommandInteractionData>;
|
|
10
|
+
export declare class ApplicationCommand extends ApplicationCommand_base {
|
|
11
|
+
}
|
|
12
|
+
export type DiscordApplicationCommand = ApplicationCommand;
|
|
13
|
+
declare const MessageComponentData_base: ServiceMap.ServiceClass<MessageComponentData, "dfx/Interactions/MessageComponentData", Discord.APIMessageComponentInteractionData>;
|
|
14
|
+
export declare class MessageComponentData extends MessageComponentData_base {
|
|
15
|
+
}
|
|
16
|
+
export type DiscordMessageComponent = MessageComponentData;
|
|
17
|
+
declare const ModalSubmitData_base: ServiceMap.ServiceClass<ModalSubmitData, "dfx/Interactions/ModalSubmitData", Discord.APIModalSubmission>;
|
|
18
|
+
export declare class ModalSubmitData extends ModalSubmitData_base {
|
|
19
|
+
}
|
|
20
|
+
export type DiscordModalSubmit = ModalSubmitData;
|
|
21
|
+
declare const FocusedOptionContext_base: ServiceMap.ServiceClass<FocusedOptionContext, "dfx/Interactions/FocusedOptionContext", Discord.APIApplicationCommandInteractionDataOption>;
|
|
22
|
+
export declare class FocusedOptionContext extends FocusedOptionContext_base {
|
|
23
|
+
}
|
|
24
|
+
export type DiscordFocusedOption = FocusedOptionContext;
|
|
25
|
+
export interface SubCommandContextData {
|
|
26
|
+
readonly command: Discord.APIApplicationCommandInteractionDataSubcommandOption;
|
|
27
|
+
}
|
|
28
|
+
declare const SubCommandContext_base: ServiceMap.ServiceClass<SubCommandContext, "dfx/Interactions/SubCommandContext", SubCommandContextData>;
|
|
29
|
+
export declare class SubCommandContext extends SubCommandContext_base {
|
|
30
|
+
}
|
|
31
|
+
export type DiscordSubCommand = SubCommandContext;
|
|
32
|
+
export declare const resolvedValues: <A>(f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => A | undefined) => Effect.Effect<ReadonlyArray<A>, NoSuchElementError, DiscordInteraction>;
|
|
33
|
+
export declare const resolved: <A>(name: string, f: (id: Discord.Snowflake, data: Discord.InteractionDataResolved) => A | undefined) => Effect.Effect<A, NoSuchElementError, DiscordInteraction>;
|
|
34
|
+
export declare const focusedOptionValue: Effect.Effect<string | number | boolean, never, FocusedOptionContext>;
|
|
35
|
+
declare const SubCommandNotFound_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").MatchRecord<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }, void, { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
36
|
+
readonly _tag: "SubCommandNotFound";
|
|
37
|
+
} & Readonly<A>;
|
|
38
|
+
export declare class SubCommandNotFound extends SubCommandNotFound_base<{
|
|
39
|
+
data: Discord.APIApplicationCommandInteraction["data"];
|
|
40
|
+
}> {
|
|
41
|
+
}
|
|
42
|
+
export declare const currentSubCommand: Effect.Effect<Discord.APIApplicationCommandInteractionDataSubcommandOption, never, DiscordSubCommand>;
|
|
43
|
+
export declare class RequiredOptionNotFound {
|
|
44
|
+
readonly data: Discord.APIApplicationCommandInteraction["data"] | Discord.APIApplicationCommandSubcommandOption;
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly _tag = "RequiredOptionNotFound";
|
|
47
|
+
constructor(data: Discord.APIApplicationCommandInteraction["data"] | Discord.APIApplicationCommandSubcommandOption, name: string);
|
|
48
|
+
}
|
|
49
|
+
export declare const modalValues: Effect.Effect<import("effect/HashMap").HashMap<string, string | null | undefined>, never, ModalSubmitData>;
|
|
50
|
+
export declare const modalValueOption: (name: string) => Effect.Effect<import("effect/Option").Option<string>, never, ModalSubmitData>;
|
|
51
|
+
export declare const modalValue: (name: string) => Effect.Effect<string, NoSuchElementError, DiscordModalSubmit>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/Interactions/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEtD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;;AAE/C,qBAAa,WAAY,SAAQ,gBAGE;CAAG;AACtC,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAA;;AAE5C,qBAAa,kBAAmB,SAAQ,uBAGE;CAAG;AAC7C,MAAM,MAAM,yBAAyB,GAAG,kBAAkB,CAAA;;AAE1D,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAC/C,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAA;;AAE1D,qBAAa,eAAgB,SAAQ,oBAGE;CAAG;AAC1C,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAA;;AAEhD,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAC/C,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAA;AAEvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,oDAAoD,CAAA;CAC/E;;AACD,qBAAa,iBAAkB,SAAQ,sBAGE;CAAG;AAC5C,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAA;AAEjD,eAAO,MAAM,cAAc,GAAI,CAAC,EAC9B,GAAG,CACD,EAAE,EAAE,OAAO,CAAC,SAAS,EACrB,IAAI,EAAE,OAAO,CAAC,uBAAuB,KAClC,CAAC,GAAG,SAAS,KACjB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,CACC,CAAA;AAE1E,eAAO,MAAM,QAAQ,GAAI,CAAC,EACxB,MAAM,MAAM,EACZ,GAAG,CACD,EAAE,EAAE,OAAO,CAAC,SAAS,EACrB,IAAI,EAAE,OAAO,CAAC,uBAAuB,KAClC,CAAC,GAAG,SAAS,KACjB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,kBAAkB,EAAE,kBAAkB,CAGvD,CAAA;AAEH,eAAO,MAAM,kBAAkB,uEAE9B,CAAA;;;;AAED,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,IAAI,EAAE,OAAO,CAAC,gCAAgC,CAAC,MAAM,CAAC,CAAA;CACvD,CAAC;CAAG;AAEL,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAC3C,OAAO,CAAC,oDAAoD,EAC5D,KAAK,EACL,iBAAiB,CACsC,CAAA;AAEzD,qBAAa,sBAAsB;IAG/B,QAAQ,CAAC,IAAI,EACT,OAAO,CAAC,gCAAgC,CAAC,MAAM,CAAC,GAChD,OAAO,CAAC,qCAAqC;IACjD,QAAQ,CAAC,IAAI,EAAE,MAAM;IALvB,QAAQ,CAAC,IAAI,4BAA2B;gBAE7B,IAAI,EACT,OAAO,CAAC,gCAAgC,CAAC,MAAM,CAAC,GAChD,OAAO,CAAC,qCAAqC,EACxC,IAAI,EAAE,MAAM;CAExB;AAED,eAAO,MAAM,WAAW,4GAEvB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,kFAG1C,CAAA;AAEH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,CAG5D,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type * as Effect from "effect/Effect";
|
|
2
|
+
import type * as Discord from "../types.ts";
|
|
3
|
+
import type { Scope } from "effect/Scope";
|
|
4
|
+
import type { CommandHelper } from "./commandHelper.ts";
|
|
5
|
+
export type InteractionDefinition<R, E> = GlobalApplicationCommand<R, E> | GuildApplicationCommand<R, E> | MessageComponent<R, E> | ModalSubmit<R, E> | Autocomplete<R, E>;
|
|
6
|
+
export declare class GlobalApplicationCommand<R, E> {
|
|
7
|
+
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
8
|
+
readonly handle: CommandHandler<R, E>;
|
|
9
|
+
readonly _tag = "GlobalApplicationCommand";
|
|
10
|
+
constructor(command: Discord.ApplicationCommandCreateRequest, handle: CommandHandler<R, E>);
|
|
11
|
+
}
|
|
12
|
+
export declare const global: <R, E, const A extends Discord.ApplicationCommandCreateRequest>(command: A, handle: CommandHandler<R, E, A>) => GlobalApplicationCommand<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand>, E>;
|
|
13
|
+
export declare class GuildApplicationCommand<R, E> {
|
|
14
|
+
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
15
|
+
readonly handle: CommandHandler<R, E>;
|
|
16
|
+
readonly _tag = "GuildApplicationCommand";
|
|
17
|
+
constructor(command: Discord.ApplicationCommandCreateRequest, handle: CommandHandler<R, E>);
|
|
18
|
+
}
|
|
19
|
+
export declare const guild: <R, E, const A extends Discord.ApplicationCommandCreateRequest>(command: A, handle: CommandHandler<R, E, A>) => GuildApplicationCommand<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand>, E>;
|
|
20
|
+
export declare class MessageComponent<R, E> {
|
|
21
|
+
readonly predicate: (customId: string) => boolean;
|
|
22
|
+
readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
|
|
23
|
+
readonly _tag = "MessageComponent";
|
|
24
|
+
constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
|
|
25
|
+
}
|
|
26
|
+
export declare const messageComponent: <E, R>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => MessageComponent<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").MessageComponentData>, E>;
|
|
27
|
+
export declare class ModalSubmit<R, E> {
|
|
28
|
+
readonly predicate: (customId: string) => boolean;
|
|
29
|
+
readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
|
|
30
|
+
readonly _tag = "ModalSubmit";
|
|
31
|
+
constructor(predicate: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
|
|
32
|
+
}
|
|
33
|
+
export declare const modalSubmit: <R, E>(pred: (customId: string) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => ModalSubmit<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ModalSubmitData>, E>;
|
|
34
|
+
export declare class Autocomplete<R, E> {
|
|
35
|
+
readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
|
|
36
|
+
readonly handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
|
|
37
|
+
readonly _tag = "Autocomplete";
|
|
38
|
+
constructor(predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>);
|
|
39
|
+
}
|
|
40
|
+
export declare const autocomplete: <R, E>(pred: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean, handle: Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>) => Autocomplete<Exclude<R, Scope | import("./context.ts").Interaction | import("./context.ts").ApplicationCommand | import("./context.ts").FocusedOptionContext>, E>;
|
|
41
|
+
export type CommandHandler<R, E, A = any> = Effect.Effect<Discord.CreateInteractionResponseRequest, E, R> | CommandHandlerFn<R, E, A>;
|
|
42
|
+
export type CommandHandlerFn<R, E, A> = (i: CommandHelper<A>) => Effect.Effect<Discord.CreateInteractionResponseRequest, E, R>;
|
|
43
|
+
//# sourceMappingURL=definitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/Interactions/definitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/Interactions/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,eAEnC,CAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
4
|
+
import { DiscordGateway } from "../DiscordGateway.ts";
|
|
5
|
+
import type { DiscordRESTError } from "../DiscordREST.ts";
|
|
6
|
+
import { DiscordREST } from "../DiscordREST.ts";
|
|
7
|
+
import type { DefinitionNotFound } from "./handlers.ts";
|
|
8
|
+
import type { DiscordInteraction, InteractionBuilder } from "./index.ts";
|
|
9
|
+
export declare const interactionsSync: ServiceMap.Reference<boolean>;
|
|
10
|
+
export declare const setInteractionsSync: (enabled: boolean) => <RIn2, E2, ROut2>(self: Layer.Layer<ROut2, E2, RIn2>) => Layer.Layer<ROut2, E2, Exclude<RIn2, never>>;
|
|
11
|
+
export declare const run: <R, R2, E, TE, E2>(postHandler: (effect: Effect.Effect<void, TE | DiscordRESTError | DefinitionNotFound, R | DiscordREST | DiscordInteraction>) => Effect.Effect<void, E2, R2>) => (ix: InteractionBuilder<R, E, TE>) => Effect.Effect<never, E2 | DiscordRESTError, DiscordREST | DiscordGateway | Exclude<R2, DiscordInteraction>>;
|
|
12
|
+
export interface InteractionsRegistryService {
|
|
13
|
+
readonly register: <E>(ix: InteractionBuilder<never, E, never>) => Effect.Effect<void>;
|
|
14
|
+
}
|
|
15
|
+
declare const InteractionsRegistry_base: ServiceMap.ServiceClass<InteractionsRegistry, "dfx/Interactions/InteractionsRegistry", InteractionsRegistryService>;
|
|
16
|
+
export declare class InteractionsRegistry extends InteractionsRegistry_base {
|
|
17
|
+
}
|
|
18
|
+
export declare const InteractionsRegistryLive: Layer.Layer<InteractionsRegistry, never, DiscordREST | DiscordGateway>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/Interactions/gateway.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAIxE,eAAO,MAAM,gBAAgB,+BAE3B,CAAA;AAEF,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,0GACK,CAAA;AAMzD,eAAO,MAAM,GAAG,GACb,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EACf,aAAa,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,CACnB,IAAI,EACJ,EAAE,GAAG,gBAAgB,GAAG,kBAAkB,EAC1C,CAAC,GAAG,WAAW,GAAG,kBAAkB,CACrC,KACE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAGhC,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC/B,MAAM,CAAC,MAAM,CACd,KAAK,EACL,EAAE,GAAG,gBAAgB,EACrB,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,EAAE,EAAE,kBAAkB,CAAC,CA4F5D,CAAA;AAmCN,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,EACnB,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KACpC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACzB;;AAED,qBAAa,oBAAqB,SAAQ,yBAGE;CAAG;AAE/C,eAAO,MAAM,wBAAwB,EAAE,KAAK,CAAC,KAAK,CAChD,oBAAoB,EACpB,KAAK,EACL,WAAW,GAAG,cAAc,CACsB,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type * as Chunk from "effect/Chunk";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Ctx from "./context.ts";
|
|
4
|
+
import type * as D from "./definitions.ts";
|
|
5
|
+
import * as Discord from "../types.ts";
|
|
6
|
+
import type { Scope } from "effect/Scope";
|
|
7
|
+
export declare class DefinitionNotFound {
|
|
8
|
+
readonly interaction: Discord.APIInteraction;
|
|
9
|
+
readonly _tag = "DefinitionNotFound";
|
|
10
|
+
constructor(interaction: Discord.APIInteraction);
|
|
11
|
+
}
|
|
12
|
+
type Handler<R, E, A> = Effect.Effect<A, E | DefinitionNotFound, R | Ctx.DiscordInteraction>;
|
|
13
|
+
export declare const handlers: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => Record<Discord.InteractionTypes, (i: Discord.APIInteraction) => Handler<Exclude<R, Scope>, E, B>>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/Interactions/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAE1C,OAAO,KAAK,OAAO,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAEzC,qBAAa,kBAAkB;IAEjB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc;IADxD,QAAQ,CAAC,IAAI,wBAAuB;gBACf,WAAW,EAAE,OAAO,CAAC,cAAc;CACzD;AAED,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,CACnC,CAAC,EACD,CAAC,GAAG,kBAAkB,EACtB,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAC3B,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EACrC,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC1B,MAAM,CACP,OAAO,CAAC,gBAAgB,EACxB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CA0EhE,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { response } from "../Helpers/interactions.ts";
|
|
2
|
+
export * from "./builder.ts";
|
|
3
|
+
export * from "./context.ts";
|
|
4
|
+
export type { InteractionDefinition } from "./definitions.ts";
|
|
5
|
+
export { autocomplete, global, guild, messageComponent, modalSubmit, } from "./definitions.ts";
|
|
6
|
+
export declare const id: (query: string) => (customId: string) => boolean;
|
|
7
|
+
export declare const idStartsWith: (query: string) => (customId: string) => boolean;
|
|
8
|
+
export declare const idRegex: (query: RegExp) => (customId: string) => boolean;
|
|
9
|
+
export declare const option: (command: string, optionName: string) => (data: {
|
|
10
|
+
readonly name: string;
|
|
11
|
+
}, focusedOption: {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
}) => boolean;
|
|
14
|
+
export declare const optionOnly: (optionName: string) => (_: unknown, focusedOption: {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
}) => boolean;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Interactions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,YAAY,EACZ,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,WAAW,GACZ,MAAM,kBAAkB,CAAA;AAGzB,eAAO,MAAM,EAAE,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YAAuB,CAAA;AAE7E,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACpC,CAAA;AAE5B,eAAO,MAAM,OAAO,GAAI,OAAO,MAAM,MAAM,UAAU,MAAM,YACrC,CAAA;AAEtB,eAAO,MAAM,MAAM,GAChB,SAAS,MAAM,EAAE,YAAY,MAAM,MACnC,MAAM;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YACd,CAAA;AAE9D,eAAO,MAAM,UAAU,GACpB,YAAY,MAAM,MAClB,GAAG,OAAO,EAAE,eAAe;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,YAClB,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as Chunk from "effect/Chunk";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type * as D from "./definitions.ts";
|
|
4
|
+
import type * as Discord from "../types.ts";
|
|
5
|
+
export type DefinitionFlattened<R, E, TE, A> = D.InteractionDefinition<R, E> extends infer Def ? {
|
|
6
|
+
[K in keyof Def]: K extends "handle" ? (_: Discord.APIInteraction) => Effect.Effect<A, TE, R> : Def[K];
|
|
7
|
+
} : never;
|
|
8
|
+
export type DefinitionFlattenedCommand<R, E, TE, A> = Extract<DefinitionFlattened<R, E, TE, A>, {
|
|
9
|
+
_tag: "GlobalApplicationCommand" | "GuildApplicationCommand";
|
|
10
|
+
}>;
|
|
11
|
+
export declare const flattenDefinitions: <R, E, TE, A, B>(definitions: Chunk.Chunk<readonly [handler: D.InteractionDefinition<R, E>, transform: (self: Effect.Effect<A, E, R>) => Effect.Effect<B, TE, R>]>, handleResponse: (ix: Discord.APIInteraction, _: Discord.CreateInteractionResponseRequest) => Effect.Effect<A, E, R>) => ({
|
|
12
|
+
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
13
|
+
_tag: "GlobalApplicationCommand";
|
|
14
|
+
command: Discord.ApplicationCommandCreateRequest;
|
|
15
|
+
} | {
|
|
16
|
+
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
17
|
+
_tag: "GuildApplicationCommand";
|
|
18
|
+
command: Discord.ApplicationCommandCreateRequest;
|
|
19
|
+
} | {
|
|
20
|
+
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
21
|
+
_tag: "MessageComponent";
|
|
22
|
+
predicate: (customId: string) => boolean;
|
|
23
|
+
} | {
|
|
24
|
+
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
25
|
+
_tag: "ModalSubmit";
|
|
26
|
+
predicate: (customId: string) => boolean;
|
|
27
|
+
} | {
|
|
28
|
+
handle: (i: Discord.APIInteraction) => Effect.Effect<B, TE, Exclude<R, import("effect/Scope").Scope>>;
|
|
29
|
+
_tag: "Autocomplete";
|
|
30
|
+
predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
|
|
31
|
+
})[];
|
|
32
|
+
export declare const splitDefinitions: <R, E, TE, A>(definitions: ReadonlyArray<DefinitionFlattened<R, E, TE, A>>) => {
|
|
33
|
+
GlobalApplicationCommand: {
|
|
34
|
+
readonly _tag: "GlobalApplicationCommand";
|
|
35
|
+
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
36
|
+
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
37
|
+
}[];
|
|
38
|
+
GuildApplicationCommand: {
|
|
39
|
+
readonly _tag: "GuildApplicationCommand";
|
|
40
|
+
readonly command: Discord.ApplicationCommandCreateRequest;
|
|
41
|
+
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
42
|
+
}[];
|
|
43
|
+
MessageComponent: {
|
|
44
|
+
readonly _tag: "MessageComponent";
|
|
45
|
+
readonly predicate: (customId: string) => boolean;
|
|
46
|
+
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
47
|
+
}[];
|
|
48
|
+
ModalSubmit: {
|
|
49
|
+
readonly _tag: "ModalSubmit";
|
|
50
|
+
readonly predicate: (customId: string) => boolean;
|
|
51
|
+
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
52
|
+
}[];
|
|
53
|
+
Autocomplete: {
|
|
54
|
+
readonly _tag: "Autocomplete";
|
|
55
|
+
readonly predicate: (data: Discord.APIApplicationCommandInteraction["data"], focusedOption: Discord.APIApplicationCommandInteractionDataOption) => boolean;
|
|
56
|
+
readonly handle: (_: Discord.APIInteraction) => Effect.Effect<A, TE, R>;
|
|
57
|
+
}[];
|
|
58
|
+
} & {
|
|
59
|
+
readonly Commands: Record<string, DefinitionFlattenedCommand<R, E, TE, A>>;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/Interactions/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,KAAK,OAAO,MAAM,aAAa,CAAA;AAI3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IACzC,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,MAAM,GAAG,GAC3C;KACG,CAAC,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,QAAQ,GAChC,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GACtD,GAAG,CAAC,CAAC,CAAC;CACX,GACD,KAAK,CAAA;AAEX,MAAM,MAAM,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAC3D,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAChC;IAAE,IAAI,EAAE,0BAA0B,GAAG,yBAAyB,CAAA;CAAE,CACjE,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAC/C,aAAa,KAAK,CAAC,KAAK,CACtB,SAAS,CACP,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACrE,CACF,EACD,gBAAgB,CACd,EAAE,EAAE,OAAO,CAAC,cAAc,EAC1B,CAAC,EAAE,OAAO,CAAC,gCAAgC,KACxC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAKjB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;;gBAAtB,OAAO,CAAC,cAAc;;;IAsB7B,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAC1C,aAAa,aAAa,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;;;;6BAlD9C,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;;;6BAAtB,OAAO,CAAC,cAAc;;;uBAkEb,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;CAe/E,CAAA"}
|