@discord-flow/adapter-discord-http 1.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.
@@ -0,0 +1,19 @@
1
+ import type { FlowEngine } from '@discord-flow/core';
2
+ export interface DiscordAdapterConfig {
3
+ publicKey: string;
4
+ engine: FlowEngine;
5
+ onError?: (error: Error) => void;
6
+ }
7
+ declare function logError(message: string, error?: unknown): void;
8
+ declare function logInfo(message: string): void;
9
+ declare function logSuccess(message: string): void;
10
+ export declare class DiscordHttpAdapter {
11
+ private readonly publicKey;
12
+ private readonly engine;
13
+ private readonly onError;
14
+ constructor(config: DiscordAdapterConfig);
15
+ handleRequest(request: Request): Promise<Response>;
16
+ private processInteraction;
17
+ }
18
+ export { logError, logInfo, logSuccess };
19
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,iBAAS,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAOxD;AAED,iBAAS,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGtC;AAED,iBAAS,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAGzC;AAED,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;gBAErC,MAAM,EAAE,oBAAoB;IAMlC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;YA2B1C,kBAAkB;CA8BnC;AAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DiscordHttpAdapter = void 0;
7
+ exports.logError = logError;
8
+ exports.logInfo = logInfo;
9
+ exports.logSuccess = logSuccess;
10
+ const types_1 = require("@discord-flow/types");
11
+ const signature_js_1 = require("./signature.js");
12
+ const parser_js_1 = require("./parser.js");
13
+ const response_js_1 = require("./response.js");
14
+ const chalk_1 = __importDefault(require("chalk"));
15
+ function logError(message, error) {
16
+ const timestamp = new Date().toLocaleTimeString();
17
+ console.log(`${chalk_1.default.gray(timestamp)} ${chalk_1.default.red('✗')} ${message}`);
18
+ if (error) {
19
+ const errorStr = error instanceof Error ? error.message : String(error);
20
+ console.log(chalk_1.default.dim(` ${errorStr}`));
21
+ }
22
+ }
23
+ function logInfo(message) {
24
+ const timestamp = new Date().toLocaleTimeString();
25
+ console.log(`${chalk_1.default.gray(timestamp)} ${chalk_1.default.blue('→')} ${message}`);
26
+ }
27
+ function logSuccess(message) {
28
+ const timestamp = new Date().toLocaleTimeString();
29
+ console.log(`${chalk_1.default.gray(timestamp)} ${chalk_1.default.green('✓')} ${message}`);
30
+ }
31
+ class DiscordHttpAdapter {
32
+ publicKey;
33
+ engine;
34
+ onError;
35
+ constructor(config) {
36
+ this.publicKey = config.publicKey;
37
+ this.engine = config.engine;
38
+ this.onError = config.onError ?? ((e) => logError('Error', e));
39
+ }
40
+ async handleRequest(request) {
41
+ const signature = request.headers.get('x-signature-ed25519');
42
+ const timestamp = request.headers.get('x-signature-timestamp');
43
+ if (!signature || !timestamp) {
44
+ logError('Request sem assinatura');
45
+ return new Response('Unauthorized', { status: 401 });
46
+ }
47
+ const body = await request.text();
48
+ const isValid = await (0, signature_js_1.verifySignature)(body, signature, timestamp, this.publicKey);
49
+ if (!isValid) {
50
+ logError('Assinatura inválida');
51
+ return new Response('Invalid signature', { status: 401 });
52
+ }
53
+ try {
54
+ const interaction = JSON.parse(body);
55
+ return await this.processInteraction(interaction);
56
+ }
57
+ catch (error) {
58
+ logError('Erro ao processar interação', error);
59
+ this.onError(error instanceof Error ? error : new Error(String(error)));
60
+ return Response.json((0, response_js_1.buildError)('Internal error'));
61
+ }
62
+ }
63
+ async processInteraction(interaction) {
64
+ if (interaction.type === types_1.InteractionType.PING) {
65
+ logSuccess('PING recebido - Endpoint verificado!');
66
+ return Response.json((0, response_js_1.buildPong)());
67
+ }
68
+ const event = (0, parser_js_1.parseInteraction)(interaction);
69
+ if (!event) {
70
+ logError(`Tipo de interação desconhecido: ${interaction.type}`);
71
+ return Response.json((0, response_js_1.buildError)('Unknown interaction type'));
72
+ }
73
+ const key = interaction.data?.name ?? interaction.data?.custom_id ?? event.key;
74
+ logInfo(`${event.type.toUpperCase()} → ${key}`);
75
+ try {
76
+ const flowResponse = await this.engine.process(event);
77
+ if (!flowResponse) {
78
+ logError(`Nenhum handler para: ${event.type}/${event.key}`);
79
+ return Response.json((0, response_js_1.buildError)('No handler found'));
80
+ }
81
+ logSuccess(`Resposta enviada`);
82
+ const isUpdate = event.type !== 'command';
83
+ return Response.json((0, response_js_1.buildResponse)(flowResponse, isUpdate));
84
+ }
85
+ catch (error) {
86
+ logError(`Erro no handler: ${event.type}/${event.key}`, error);
87
+ return Response.json((0, response_js_1.buildError)('Handler error'));
88
+ }
89
+ }
90
+ }
91
+ exports.DiscordHttpAdapter = DiscordHttpAdapter;
92
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/api.d.ts ADDED
@@ -0,0 +1,275 @@
1
+ export interface DiscordAPIConfig {
2
+ token: string;
3
+ applicationId?: string;
4
+ }
5
+ export declare class DiscordAPI {
6
+ private readonly token;
7
+ constructor(config: DiscordAPIConfig);
8
+ private request;
9
+ getApplicationInfo(): Promise<{
10
+ id: string;
11
+ name: string;
12
+ }>;
13
+ createChannel(guildId: string, options: CreateChannelOptions): Promise<Channel>;
14
+ deleteChannel(channelId: string): Promise<void>;
15
+ editChannel(channelId: string, options: EditChannelOptions): Promise<Channel>;
16
+ addRole(guildId: string, userId: string, roleId: string): Promise<void>;
17
+ removeRole(guildId: string, userId: string, roleId: string): Promise<void>;
18
+ createRole(guildId: string, options?: CreateRoleOptions): Promise<Role>;
19
+ deleteRole(guildId: string, roleId: string): Promise<void>;
20
+ editRole(guildId: string, roleId: string, options: EditRoleOptions): Promise<Role>;
21
+ kickMember(guildId: string, userId: string, reason?: string): Promise<void>;
22
+ banMember(guildId: string, userId: string, options?: BanOptions): Promise<void>;
23
+ unbanMember(guildId: string, userId: string): Promise<void>;
24
+ timeoutMember(guildId: string, userId: string, until: Date | null): Promise<void>;
25
+ sendMessage(channelId: string, content: MessagePayload): Promise<Message>;
26
+ editMessage(channelId: string, messageId: string, content: MessagePayload): Promise<Message>;
27
+ deleteMessage(channelId: string, messageId: string): Promise<void>;
28
+ addReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
29
+ removeReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
30
+ pinMessage(channelId: string, messageId: string): Promise<void>;
31
+ unpinMessage(channelId: string, messageId: string): Promise<void>;
32
+ createThread(channelId: string, options: CreateThreadOptions): Promise<Channel>;
33
+ getUser(userId: string): Promise<User>;
34
+ getMember(guildId: string, userId: string): Promise<Member>;
35
+ getGuild(guildId: string): Promise<Guild>;
36
+ getChannel(channelId: string): Promise<Channel>;
37
+ getRoles(guildId: string): Promise<Role[]>;
38
+ getChannels(guildId: string): Promise<Channel[]>;
39
+ createInvite(channelId: string, options?: CreateInviteOptions): Promise<Invite>;
40
+ setNickname(guildId: string, userId: string, nickname: string | null): Promise<void>;
41
+ moveMember(guildId: string, userId: string, channelId: string | null): Promise<void>;
42
+ setChannelPermissions(channelId: string, overwriteId: string, options: PermissionOverwrite): Promise<void>;
43
+ deleteChannelPermissions(channelId: string, overwriteId: string): Promise<void>;
44
+ followupMessage(applicationId: string, interactionToken: string, content: MessagePayload): Promise<Message>;
45
+ editOriginalResponse(applicationId: string, interactionToken: string, content: MessagePayload): Promise<Message>;
46
+ deleteOriginalResponse(applicationId: string, interactionToken: string): Promise<void>;
47
+ registerCommands(applicationId: string, commands: ApplicationCommand[]): Promise<void>;
48
+ registerGuildCommands(applicationId: string, guildId: string, commands: ApplicationCommand[]): Promise<void>;
49
+ }
50
+ export interface CreateChannelOptions {
51
+ name: string;
52
+ type?: number;
53
+ topic?: string;
54
+ bitrate?: number;
55
+ user_limit?: number;
56
+ rate_limit_per_user?: number;
57
+ position?: number;
58
+ permission_overwrites?: PermissionOverwrite[];
59
+ parent_id?: string;
60
+ nsfw?: boolean;
61
+ }
62
+ export interface EditChannelOptions {
63
+ name?: string;
64
+ type?: number;
65
+ position?: number;
66
+ topic?: string;
67
+ nsfw?: boolean;
68
+ rate_limit_per_user?: number;
69
+ bitrate?: number;
70
+ user_limit?: number;
71
+ permission_overwrites?: PermissionOverwrite[];
72
+ parent_id?: string;
73
+ }
74
+ export interface CreateRoleOptions {
75
+ name?: string;
76
+ permissions?: string;
77
+ color?: number;
78
+ hoist?: boolean;
79
+ mentionable?: boolean;
80
+ }
81
+ export interface EditRoleOptions {
82
+ name?: string;
83
+ permissions?: string;
84
+ color?: number;
85
+ hoist?: boolean;
86
+ mentionable?: boolean;
87
+ }
88
+ export interface BanOptions {
89
+ delete_message_seconds?: number;
90
+ }
91
+ export interface MessagePayload {
92
+ content?: string;
93
+ embeds?: unknown[];
94
+ components?: unknown[];
95
+ flags?: number;
96
+ tts?: boolean;
97
+ allowed_mentions?: {
98
+ parse?: string[];
99
+ users?: string[];
100
+ roles?: string[];
101
+ replied_user?: boolean;
102
+ };
103
+ }
104
+ export interface CreateThreadOptions {
105
+ name: string;
106
+ auto_archive_duration?: number;
107
+ type?: number;
108
+ invitable?: boolean;
109
+ rate_limit_per_user?: number;
110
+ }
111
+ export interface CreateInviteOptions {
112
+ max_age?: number;
113
+ max_uses?: number;
114
+ temporary?: boolean;
115
+ unique?: boolean;
116
+ }
117
+ export interface PermissionOverwrite {
118
+ id: string;
119
+ type: 0 | 1;
120
+ allow?: string;
121
+ deny?: string;
122
+ }
123
+ export interface ApplicationCommand {
124
+ name: string;
125
+ description: string;
126
+ type?: number;
127
+ options?: ApplicationCommandOption[];
128
+ default_member_permissions?: string;
129
+ dm_permission?: boolean;
130
+ }
131
+ export interface ApplicationCommandOption {
132
+ type: number;
133
+ name: string;
134
+ description: string;
135
+ required?: boolean;
136
+ choices?: {
137
+ name: string;
138
+ value: string | number;
139
+ }[];
140
+ options?: ApplicationCommandOption[];
141
+ channel_types?: number[];
142
+ min_value?: number;
143
+ max_value?: number;
144
+ min_length?: number;
145
+ max_length?: number;
146
+ autocomplete?: boolean;
147
+ }
148
+ export interface Channel {
149
+ id: string;
150
+ type: number;
151
+ guild_id?: string;
152
+ name?: string;
153
+ topic?: string;
154
+ position?: number;
155
+ permission_overwrites?: PermissionOverwrite[];
156
+ parent_id?: string;
157
+ nsfw?: boolean;
158
+ }
159
+ export interface Role {
160
+ id: string;
161
+ name: string;
162
+ color: number;
163
+ hoist: boolean;
164
+ position: number;
165
+ permissions: string;
166
+ managed: boolean;
167
+ mentionable: boolean;
168
+ }
169
+ export interface User {
170
+ id: string;
171
+ username: string;
172
+ discriminator: string;
173
+ global_name?: string;
174
+ avatar?: string;
175
+ bot?: boolean;
176
+ }
177
+ export interface Member {
178
+ user?: User;
179
+ nick?: string;
180
+ roles: string[];
181
+ joined_at: string;
182
+ premium_since?: string;
183
+ deaf: boolean;
184
+ mute: boolean;
185
+ pending?: boolean;
186
+ communication_disabled_until?: string;
187
+ }
188
+ export interface Guild {
189
+ id: string;
190
+ name: string;
191
+ icon?: string;
192
+ owner_id: string;
193
+ member_count?: number;
194
+ }
195
+ export interface Message {
196
+ id: string;
197
+ channel_id: string;
198
+ author: User;
199
+ content: string;
200
+ timestamp: string;
201
+ }
202
+ export interface Invite {
203
+ code: string;
204
+ channel: {
205
+ id: string;
206
+ name: string;
207
+ };
208
+ guild?: {
209
+ id: string;
210
+ name: string;
211
+ };
212
+ inviter?: User;
213
+ uses?: number;
214
+ max_uses?: number;
215
+ max_age?: number;
216
+ temporary?: boolean;
217
+ }
218
+ export declare const ChannelType: {
219
+ readonly GUILD_TEXT: 0;
220
+ readonly DM: 1;
221
+ readonly GUILD_VOICE: 2;
222
+ readonly GROUP_DM: 3;
223
+ readonly GUILD_CATEGORY: 4;
224
+ readonly GUILD_ANNOUNCEMENT: 5;
225
+ readonly ANNOUNCEMENT_THREAD: 10;
226
+ readonly PUBLIC_THREAD: 11;
227
+ readonly PRIVATE_THREAD: 12;
228
+ readonly GUILD_STAGE_VOICE: 13;
229
+ readonly GUILD_DIRECTORY: 14;
230
+ readonly GUILD_FORUM: 15;
231
+ };
232
+ export declare const Permissions: {
233
+ readonly CREATE_INSTANT_INVITE: bigint;
234
+ readonly KICK_MEMBERS: bigint;
235
+ readonly BAN_MEMBERS: bigint;
236
+ readonly ADMINISTRATOR: bigint;
237
+ readonly MANAGE_CHANNELS: bigint;
238
+ readonly MANAGE_GUILD: bigint;
239
+ readonly ADD_REACTIONS: bigint;
240
+ readonly VIEW_AUDIT_LOG: bigint;
241
+ readonly PRIORITY_SPEAKER: bigint;
242
+ readonly STREAM: bigint;
243
+ readonly VIEW_CHANNEL: bigint;
244
+ readonly SEND_MESSAGES: bigint;
245
+ readonly SEND_TTS_MESSAGES: bigint;
246
+ readonly MANAGE_MESSAGES: bigint;
247
+ readonly EMBED_LINKS: bigint;
248
+ readonly ATTACH_FILES: bigint;
249
+ readonly READ_MESSAGE_HISTORY: bigint;
250
+ readonly MENTION_EVERYONE: bigint;
251
+ readonly USE_EXTERNAL_EMOJIS: bigint;
252
+ readonly VIEW_GUILD_INSIGHTS: bigint;
253
+ readonly CONNECT: bigint;
254
+ readonly SPEAK: bigint;
255
+ readonly MUTE_MEMBERS: bigint;
256
+ readonly DEAFEN_MEMBERS: bigint;
257
+ readonly MOVE_MEMBERS: bigint;
258
+ readonly USE_VAD: bigint;
259
+ readonly CHANGE_NICKNAME: bigint;
260
+ readonly MANAGE_NICKNAMES: bigint;
261
+ readonly MANAGE_ROLES: bigint;
262
+ readonly MANAGE_WEBHOOKS: bigint;
263
+ readonly MANAGE_EMOJIS_AND_STICKERS: bigint;
264
+ readonly USE_APPLICATION_COMMANDS: bigint;
265
+ readonly REQUEST_TO_SPEAK: bigint;
266
+ readonly MANAGE_EVENTS: bigint;
267
+ readonly MANAGE_THREADS: bigint;
268
+ readonly CREATE_PUBLIC_THREADS: bigint;
269
+ readonly CREATE_PRIVATE_THREADS: bigint;
270
+ readonly USE_EXTERNAL_STICKERS: bigint;
271
+ readonly SEND_MESSAGES_IN_THREADS: bigint;
272
+ readonly USE_EMBEDDED_ACTIVITIES: bigint;
273
+ readonly MODERATE_MEMBERS: bigint;
274
+ };
275
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js ADDED
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Permissions = exports.ChannelType = exports.DiscordAPI = void 0;
4
+ const BASE_URL = 'https://discord.com/api/v10';
5
+ class DiscordAPI {
6
+ token;
7
+ constructor(config) {
8
+ this.token = config.token;
9
+ }
10
+ async request(method, endpoint, body) {
11
+ const init = {
12
+ method,
13
+ headers: {
14
+ 'Authorization': `Bot ${this.token}`,
15
+ 'Content-Type': 'application/json'
16
+ }
17
+ };
18
+ if (body !== undefined) {
19
+ init.body = JSON.stringify(body);
20
+ }
21
+ const response = await fetch(`${BASE_URL}${endpoint}`, init);
22
+ if (!response.ok) {
23
+ const error = await response.text();
24
+ throw new Error(`Discord API Error ${response.status}: ${error}`);
25
+ }
26
+ if (response.status === 204)
27
+ return {};
28
+ return response.json();
29
+ }
30
+ async getApplicationInfo() {
31
+ return this.request('GET', '/applications/@me');
32
+ }
33
+ async createChannel(guildId, options) {
34
+ return this.request('POST', `/guilds/${guildId}/channels`, options);
35
+ }
36
+ async deleteChannel(channelId) {
37
+ await this.request('DELETE', `/channels/${channelId}`);
38
+ }
39
+ async editChannel(channelId, options) {
40
+ return this.request('PATCH', `/channels/${channelId}`, options);
41
+ }
42
+ async addRole(guildId, userId, roleId) {
43
+ await this.request('PUT', `/guilds/${guildId}/members/${userId}/roles/${roleId}`);
44
+ }
45
+ async removeRole(guildId, userId, roleId) {
46
+ await this.request('DELETE', `/guilds/${guildId}/members/${userId}/roles/${roleId}`);
47
+ }
48
+ async createRole(guildId, options = {}) {
49
+ return this.request('POST', `/guilds/${guildId}/roles`, options);
50
+ }
51
+ async deleteRole(guildId, roleId) {
52
+ await this.request('DELETE', `/guilds/${guildId}/roles/${roleId}`);
53
+ }
54
+ async editRole(guildId, roleId, options) {
55
+ return this.request('PATCH', `/guilds/${guildId}/roles/${roleId}`, options);
56
+ }
57
+ async kickMember(guildId, userId, reason) {
58
+ const headers = {};
59
+ if (reason)
60
+ headers['X-Audit-Log-Reason'] = reason;
61
+ await this.request('DELETE', `/guilds/${guildId}/members/${userId}`);
62
+ }
63
+ async banMember(guildId, userId, options) {
64
+ await this.request('PUT', `/guilds/${guildId}/bans/${userId}`, options);
65
+ }
66
+ async unbanMember(guildId, userId) {
67
+ await this.request('DELETE', `/guilds/${guildId}/bans/${userId}`);
68
+ }
69
+ async timeoutMember(guildId, userId, until) {
70
+ await this.request('PATCH', `/guilds/${guildId}/members/${userId}`, {
71
+ communication_disabled_until: until?.toISOString() ?? null
72
+ });
73
+ }
74
+ async sendMessage(channelId, content) {
75
+ return this.request('POST', `/channels/${channelId}/messages`, content);
76
+ }
77
+ async editMessage(channelId, messageId, content) {
78
+ return this.request('PATCH', `/channels/${channelId}/messages/${messageId}`, content);
79
+ }
80
+ async deleteMessage(channelId, messageId) {
81
+ await this.request('DELETE', `/channels/${channelId}/messages/${messageId}`);
82
+ }
83
+ async addReaction(channelId, messageId, emoji) {
84
+ const encoded = encodeURIComponent(emoji);
85
+ await this.request('PUT', `/channels/${channelId}/messages/${messageId}/reactions/${encoded}/@me`);
86
+ }
87
+ async removeReaction(channelId, messageId, emoji) {
88
+ const encoded = encodeURIComponent(emoji);
89
+ await this.request('DELETE', `/channels/${channelId}/messages/${messageId}/reactions/${encoded}/@me`);
90
+ }
91
+ async pinMessage(channelId, messageId) {
92
+ await this.request('PUT', `/channels/${channelId}/pins/${messageId}`);
93
+ }
94
+ async unpinMessage(channelId, messageId) {
95
+ await this.request('DELETE', `/channels/${channelId}/pins/${messageId}`);
96
+ }
97
+ async createThread(channelId, options) {
98
+ return this.request('POST', `/channels/${channelId}/threads`, options);
99
+ }
100
+ async getUser(userId) {
101
+ return this.request('GET', `/users/${userId}`);
102
+ }
103
+ async getMember(guildId, userId) {
104
+ return this.request('GET', `/guilds/${guildId}/members/${userId}`);
105
+ }
106
+ async getGuild(guildId) {
107
+ return this.request('GET', `/guilds/${guildId}`);
108
+ }
109
+ async getChannel(channelId) {
110
+ return this.request('GET', `/channels/${channelId}`);
111
+ }
112
+ async getRoles(guildId) {
113
+ return this.request('GET', `/guilds/${guildId}/roles`);
114
+ }
115
+ async getChannels(guildId) {
116
+ return this.request('GET', `/guilds/${guildId}/channels`);
117
+ }
118
+ async createInvite(channelId, options = {}) {
119
+ return this.request('POST', `/channels/${channelId}/invites`, options);
120
+ }
121
+ async setNickname(guildId, userId, nickname) {
122
+ await this.request('PATCH', `/guilds/${guildId}/members/${userId}`, { nick: nickname });
123
+ }
124
+ async moveMember(guildId, userId, channelId) {
125
+ await this.request('PATCH', `/guilds/${guildId}/members/${userId}`, { channel_id: channelId });
126
+ }
127
+ async setChannelPermissions(channelId, overwriteId, options) {
128
+ await this.request('PUT', `/channels/${channelId}/permissions/${overwriteId}`, options);
129
+ }
130
+ async deleteChannelPermissions(channelId, overwriteId) {
131
+ await this.request('DELETE', `/channels/${channelId}/permissions/${overwriteId}`);
132
+ }
133
+ async followupMessage(applicationId, interactionToken, content) {
134
+ return this.request('POST', `/webhooks/${applicationId}/${interactionToken}`, content);
135
+ }
136
+ async editOriginalResponse(applicationId, interactionToken, content) {
137
+ return this.request('PATCH', `/webhooks/${applicationId}/${interactionToken}/messages/@original`, content);
138
+ }
139
+ async deleteOriginalResponse(applicationId, interactionToken) {
140
+ await this.request('DELETE', `/webhooks/${applicationId}/${interactionToken}/messages/@original`);
141
+ }
142
+ async registerCommands(applicationId, commands) {
143
+ await this.request('PUT', `/applications/${applicationId}/commands`, commands);
144
+ }
145
+ async registerGuildCommands(applicationId, guildId, commands) {
146
+ await this.request('PUT', `/applications/${applicationId}/guilds/${guildId}/commands`, commands);
147
+ }
148
+ }
149
+ exports.DiscordAPI = DiscordAPI;
150
+ exports.ChannelType = {
151
+ GUILD_TEXT: 0,
152
+ DM: 1,
153
+ GUILD_VOICE: 2,
154
+ GROUP_DM: 3,
155
+ GUILD_CATEGORY: 4,
156
+ GUILD_ANNOUNCEMENT: 5,
157
+ ANNOUNCEMENT_THREAD: 10,
158
+ PUBLIC_THREAD: 11,
159
+ PRIVATE_THREAD: 12,
160
+ GUILD_STAGE_VOICE: 13,
161
+ GUILD_DIRECTORY: 14,
162
+ GUILD_FORUM: 15
163
+ };
164
+ exports.Permissions = {
165
+ CREATE_INSTANT_INVITE: 1n << 0n,
166
+ KICK_MEMBERS: 1n << 1n,
167
+ BAN_MEMBERS: 1n << 2n,
168
+ ADMINISTRATOR: 1n << 3n,
169
+ MANAGE_CHANNELS: 1n << 4n,
170
+ MANAGE_GUILD: 1n << 5n,
171
+ ADD_REACTIONS: 1n << 6n,
172
+ VIEW_AUDIT_LOG: 1n << 7n,
173
+ PRIORITY_SPEAKER: 1n << 8n,
174
+ STREAM: 1n << 9n,
175
+ VIEW_CHANNEL: 1n << 10n,
176
+ SEND_MESSAGES: 1n << 11n,
177
+ SEND_TTS_MESSAGES: 1n << 12n,
178
+ MANAGE_MESSAGES: 1n << 13n,
179
+ EMBED_LINKS: 1n << 14n,
180
+ ATTACH_FILES: 1n << 15n,
181
+ READ_MESSAGE_HISTORY: 1n << 16n,
182
+ MENTION_EVERYONE: 1n << 17n,
183
+ USE_EXTERNAL_EMOJIS: 1n << 18n,
184
+ VIEW_GUILD_INSIGHTS: 1n << 19n,
185
+ CONNECT: 1n << 20n,
186
+ SPEAK: 1n << 21n,
187
+ MUTE_MEMBERS: 1n << 22n,
188
+ DEAFEN_MEMBERS: 1n << 23n,
189
+ MOVE_MEMBERS: 1n << 24n,
190
+ USE_VAD: 1n << 25n,
191
+ CHANGE_NICKNAME: 1n << 26n,
192
+ MANAGE_NICKNAMES: 1n << 27n,
193
+ MANAGE_ROLES: 1n << 28n,
194
+ MANAGE_WEBHOOKS: 1n << 29n,
195
+ MANAGE_EMOJIS_AND_STICKERS: 1n << 30n,
196
+ USE_APPLICATION_COMMANDS: 1n << 31n,
197
+ REQUEST_TO_SPEAK: 1n << 32n,
198
+ MANAGE_EVENTS: 1n << 33n,
199
+ MANAGE_THREADS: 1n << 34n,
200
+ CREATE_PUBLIC_THREADS: 1n << 35n,
201
+ CREATE_PRIVATE_THREADS: 1n << 36n,
202
+ USE_EXTERNAL_STICKERS: 1n << 37n,
203
+ SEND_MESSAGES_IN_THREADS: 1n << 38n,
204
+ USE_EMBEDDED_ACTIVITIES: 1n << 39n,
205
+ MODERATE_MEMBERS: 1n << 40n
206
+ };
207
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export { DiscordHttpAdapter, type DiscordAdapterConfig } from './adapter.js';
2
+ export { createServer, type ServerConfig, type ServerInstance } from './server.js';
3
+ export { verifySignature } from './signature.js';
4
+ export { parseInteraction } from './parser.js';
5
+ export { buildResponse, buildPong, buildError } from './response.js';
6
+ export { DiscordAPI, type DiscordAPIConfig, type CreateChannelOptions, type EditChannelOptions, type CreateRoleOptions, type EditRoleOptions, type BanOptions, type MessagePayload, type CreateThreadOptions, type CreateInviteOptions, type PermissionOverwrite, type ApplicationCommand, type ApplicationCommandOption, type Channel, type Role, type User, type Member, type Guild, type Message, type Invite, ChannelType, Permissions } from './api.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EACH,UAAU,EACV,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,WAAW,EACX,WAAW,EACd,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Permissions = exports.ChannelType = exports.DiscordAPI = exports.buildError = exports.buildPong = exports.buildResponse = exports.parseInteraction = exports.verifySignature = exports.createServer = exports.DiscordHttpAdapter = void 0;
4
+ var adapter_js_1 = require("./adapter.js");
5
+ Object.defineProperty(exports, "DiscordHttpAdapter", { enumerable: true, get: function () { return adapter_js_1.DiscordHttpAdapter; } });
6
+ var server_js_1 = require("./server.js");
7
+ Object.defineProperty(exports, "createServer", { enumerable: true, get: function () { return server_js_1.createServer; } });
8
+ var signature_js_1 = require("./signature.js");
9
+ Object.defineProperty(exports, "verifySignature", { enumerable: true, get: function () { return signature_js_1.verifySignature; } });
10
+ var parser_js_1 = require("./parser.js");
11
+ Object.defineProperty(exports, "parseInteraction", { enumerable: true, get: function () { return parser_js_1.parseInteraction; } });
12
+ var response_js_1 = require("./response.js");
13
+ Object.defineProperty(exports, "buildResponse", { enumerable: true, get: function () { return response_js_1.buildResponse; } });
14
+ Object.defineProperty(exports, "buildPong", { enumerable: true, get: function () { return response_js_1.buildPong; } });
15
+ Object.defineProperty(exports, "buildError", { enumerable: true, get: function () { return response_js_1.buildError; } });
16
+ var api_js_1 = require("./api.js");
17
+ Object.defineProperty(exports, "DiscordAPI", { enumerable: true, get: function () { return api_js_1.DiscordAPI; } });
18
+ Object.defineProperty(exports, "ChannelType", { enumerable: true, get: function () { return api_js_1.ChannelType; } });
19
+ Object.defineProperty(exports, "Permissions", { enumerable: true, get: function () { return api_js_1.Permissions; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,2CAA6E;AAApE,gHAAA,kBAAkB,OAAA;AAC3B,yCAAmF;AAA1E,yGAAA,YAAY,OAAA;AACrB,+CAAiD;AAAxC,+GAAA,eAAe,OAAA;AACxB,yCAA+C;AAAtC,6GAAA,gBAAgB,OAAA;AACzB,6CAAqE;AAA5D,4GAAA,aAAa,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,yGAAA,UAAU,OAAA;AAC7C,mCAuBkB;AAtBd,oGAAA,UAAU,OAAA;AAoBV,qGAAA,WAAW,OAAA;AACX,qGAAA,WAAW,OAAA"}
@@ -0,0 +1,37 @@
1
+ import type { FlowEvent } from '@discord-flow/types';
2
+ export declare function parseInteraction(interaction: DiscordInteraction): FlowEvent | null;
3
+ interface DiscordInteraction {
4
+ type: number;
5
+ data?: {
6
+ name?: string;
7
+ custom_id?: string;
8
+ component_type?: number;
9
+ options?: DiscordCommandOption[];
10
+ values?: string[];
11
+ components?: DiscordModalComponent[];
12
+ };
13
+ member?: {
14
+ user?: {
15
+ id: string;
16
+ };
17
+ };
18
+ user?: {
19
+ id: string;
20
+ };
21
+ guild_id?: string;
22
+ channel_id?: string;
23
+ }
24
+ interface DiscordCommandOption {
25
+ name: string;
26
+ value?: unknown;
27
+ options?: DiscordCommandOption[];
28
+ }
29
+ interface DiscordModalComponent {
30
+ type: number;
31
+ components?: Array<{
32
+ custom_id?: string;
33
+ value?: string;
34
+ }>;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,qBAAqB,CAAC;AAGhE,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAqClF;AAsCD,UAAU,kBAAkB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;KACxC,CAAC;IACF,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACnC,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,oBAAoB;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACpC;AAED,UAAU,qBAAqB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,KAAK,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACN"}
package/dist/parser.js ADDED
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseInteraction = parseInteraction;
4
+ const types_1 = require("@discord-flow/types");
5
+ function parseInteraction(interaction) {
6
+ const base = {
7
+ platform: 'discord',
8
+ userId: interaction.member?.user?.id ?? interaction.user?.id ?? '',
9
+ guildId: interaction.guild_id,
10
+ channelId: interaction.channel_id ?? '',
11
+ raw: interaction
12
+ };
13
+ switch (interaction.type) {
14
+ case types_1.InteractionType.APPLICATION_COMMAND:
15
+ return {
16
+ ...base,
17
+ type: 'command',
18
+ key: interaction.data?.name ?? '',
19
+ data: parseCommandOptions(interaction.data?.options)
20
+ };
21
+ case types_1.InteractionType.MESSAGE_COMPONENT:
22
+ return {
23
+ ...base,
24
+ type: resolveComponentType(interaction.data?.component_type),
25
+ key: interaction.data?.custom_id ?? '',
26
+ data: { values: interaction.data?.values }
27
+ };
28
+ case types_1.InteractionType.MODAL_SUBMIT:
29
+ return {
30
+ ...base,
31
+ type: 'modal',
32
+ key: interaction.data?.custom_id ?? '',
33
+ data: parseModalFields(interaction.data?.components)
34
+ };
35
+ default:
36
+ return null;
37
+ }
38
+ }
39
+ function parseCommandOptions(options) {
40
+ if (!options)
41
+ return {};
42
+ const result = {};
43
+ for (const opt of options) {
44
+ if (opt.options) {
45
+ Object.assign(result, parseCommandOptions(opt.options));
46
+ result._subcommand = opt.name;
47
+ }
48
+ else {
49
+ result[opt.name] = opt.value;
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ function parseModalFields(components) {
55
+ if (!components)
56
+ return {};
57
+ const result = {};
58
+ for (const row of components) {
59
+ if (row.components) {
60
+ for (const field of row.components) {
61
+ if (field.custom_id && field.value !== undefined) {
62
+ result[field.custom_id] = field.value;
63
+ }
64
+ }
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ function resolveComponentType(type) {
70
+ if (type === types_1.ComponentType.BUTTON)
71
+ return 'button';
72
+ return 'select';
73
+ }
74
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";;AAGA,4CAqCC;AAvCD,+CAAqE;AAErE,SAAgB,gBAAgB,CAAC,WAA+B;IAC5D,MAAM,IAAI,GAAG;QACT,QAAQ,EAAE,SAAkB;QAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;QAClE,OAAO,EAAE,WAAW,CAAC,QAAQ;QAC7B,SAAS,EAAE,WAAW,CAAC,UAAU,IAAI,EAAE;QACvC,GAAG,EAAE,WAAW;KACnB,CAAC;IAEF,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,uBAAe,CAAC,mBAAmB;YACpC,OAAO;gBACH,GAAG,IAAI;gBACP,IAAI,EAAE,SAAS;gBACf,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE;gBACjC,IAAI,EAAE,mBAAmB,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;aACvD,CAAC;QAEN,KAAK,uBAAe,CAAC,iBAAiB;YAClC,OAAO;gBACH,GAAG,IAAI;gBACP,IAAI,EAAE,oBAAoB,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,CAAC;gBAC5D,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE;gBACtC,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;aAC7C,CAAC;QAEN,KAAK,uBAAe,CAAC,YAAY;YAC7B,OAAO;gBACH,GAAG,IAAI;gBACP,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE;gBACtC,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;aACvD,CAAC;QAEN;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgC;IACzD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;QAClC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACjC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAoC;IAC1D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACjB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC/C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACvC,IAAI,IAAI,KAAK,qBAAa,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IACnD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { FlowResponse } from '@discord-flow/types';
2
+ export declare function buildResponse(response: FlowResponse, isUpdate?: boolean): DiscordResponse;
3
+ export declare function buildPong(): DiscordResponse;
4
+ export declare function buildError(message: string): DiscordResponse;
5
+ interface DiscordResponse {
6
+ type: number;
7
+ data?: DiscordResponseData;
8
+ }
9
+ interface DiscordResponseData {
10
+ content?: string;
11
+ embeds?: unknown[];
12
+ components?: unknown[];
13
+ flags?: number;
14
+ }
15
+ export {};
16
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,UAAQ,GAAG,eAAe,CA8BvF;AAgBD,wBAAgB,SAAS,IAAI,eAAe,CAE3C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAQ3D;AAED,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,mBAAmB,CAAC;CAC9B;AAED,UAAU,mBAAmB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildResponse = buildResponse;
4
+ exports.buildPong = buildPong;
5
+ exports.buildError = buildError;
6
+ const types_1 = require("@discord-flow/types");
7
+ function buildResponse(response, isUpdate = false) {
8
+ if (response.deferred) {
9
+ return {
10
+ type: isUpdate
11
+ ? types_1.InteractionResponseType.DEFERRED_UPDATE
12
+ : types_1.InteractionResponseType.DEFERRED_CHANNEL_MESSAGE
13
+ };
14
+ }
15
+ const data = {};
16
+ if (response.content !== undefined)
17
+ data.content = response.content;
18
+ if (response.embeds)
19
+ data.embeds = response.embeds;
20
+ if (response.components)
21
+ data.components = response.components;
22
+ let flags = response.flags ?? 0;
23
+ if (response.ephemeral)
24
+ flags |= types_1.MessageFlags.EPHEMERAL;
25
+ if (hasComponentsV2(response.components)) {
26
+ flags |= types_1.MessageFlags.IS_COMPONENTS_V2;
27
+ }
28
+ if (flags > 0)
29
+ data.flags = flags;
30
+ return {
31
+ type: isUpdate || response.update
32
+ ? types_1.InteractionResponseType.UPDATE_MESSAGE
33
+ : types_1.InteractionResponseType.CHANNEL_MESSAGE,
34
+ data
35
+ };
36
+ }
37
+ function hasComponentsV2(components) {
38
+ if (!components)
39
+ return false;
40
+ const v2Types = [9, 10, 11, 12, 13, 14, 17];
41
+ return components.some((c) => {
42
+ if (typeof c !== 'object' || c === null)
43
+ return false;
44
+ const comp = c;
45
+ if (comp.type && v2Types.includes(comp.type))
46
+ return true;
47
+ if (comp.components)
48
+ return hasComponentsV2(comp.components);
49
+ return false;
50
+ });
51
+ }
52
+ function buildPong() {
53
+ return { type: types_1.InteractionResponseType.PONG };
54
+ }
55
+ function buildError(message) {
56
+ return {
57
+ type: types_1.InteractionResponseType.CHANNEL_MESSAGE,
58
+ data: {
59
+ content: message,
60
+ flags: types_1.MessageFlags.EPHEMERAL
61
+ }
62
+ };
63
+ }
64
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":";;AAGA,sCA8BC;AAgBD,8BAEC;AAED,gCAQC;AA5DD,+CAA4E;AAE5E,SAAgB,aAAa,CAAC,QAAsB,EAAE,QAAQ,GAAG,KAAK;IAClE,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO;YACH,IAAI,EAAE,QAAQ;gBACV,CAAC,CAAC,+BAAuB,CAAC,eAAe;gBACzC,CAAC,CAAC,+BAAuB,CAAC,wBAAwB;SACzD,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpE,IAAI,QAAQ,CAAC,MAAM;QAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IACnD,IAAI,QAAQ,CAAC,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IAE/D,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,IAAI,oBAAY,CAAC,SAAS,CAAC;IAExD,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACvC,KAAK,IAAI,oBAAY,CAAC,gBAAgB,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK,GAAG,CAAC;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAElC,OAAO;QACH,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC,MAAM;YAC7B,CAAC,CAAC,+BAAuB,CAAC,cAAc;YACxC,CAAC,CAAC,+BAAuB,CAAC,eAAe;QAC7C,IAAI;KACP,CAAC;AACN,CAAC;AAED,SAAS,eAAe,CAAC,UAAsB;IAC3C,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAE9B,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5C,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE;QAClC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACtD,MAAM,IAAI,GAAG,CAA8C,CAAC;QAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,SAAS;IACrB,OAAO,EAAE,IAAI,EAAE,+BAAuB,CAAC,IAAI,EAAE,CAAC;AAClD,CAAC;AAED,SAAgB,UAAU,CAAC,OAAe;IACtC,OAAO;QACH,IAAI,EAAE,+BAAuB,CAAC,eAAe;QAC7C,IAAI,EAAE;YACF,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,oBAAY,CAAC,SAAS;SAChC;KACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { FlowEngine } from '@discord-flow/core';
2
+ import { type DiscordAdapterConfig } from './adapter.js';
3
+ export interface ServerConfig extends Omit<DiscordAdapterConfig, 'engine'> {
4
+ engine: FlowEngine;
5
+ port?: number;
6
+ hostname?: string;
7
+ path?: string;
8
+ token?: string | undefined;
9
+ guildId?: string | undefined;
10
+ }
11
+ export interface ServerInstance {
12
+ start: () => Promise<void>;
13
+ stop: () => void;
14
+ handler: (request: Request) => Promise<Response>;
15
+ getEndpointUrl: () => string;
16
+ }
17
+ export declare function createServer(config: ServerConfig): ServerInstance;
18
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAI7E,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC;IACtE,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,cAAc,EAAE,MAAM,MAAM,CAAC;CAChC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,CA+IjE"}
package/dist/server.js ADDED
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createServer = createServer;
7
+ const adapter_js_1 = require("./adapter.js");
8
+ const api_js_1 = require("./api.js");
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ function createServer(config) {
11
+ const { port = 3000, hostname = '0.0.0.0', path = '/interactions', token, guildId, ...adapterConfig } = config;
12
+ const adapter = new adapter_js_1.DiscordHttpAdapter(adapterConfig);
13
+ const handler = async (request) => {
14
+ const url = new URL(request.url);
15
+ if (request.method === 'POST' && url.pathname === path) {
16
+ return adapter.handleRequest(request);
17
+ }
18
+ if (request.method === 'GET' && url.pathname === '/health') {
19
+ return new Response('OK', { status: 200 });
20
+ }
21
+ if (request.method === 'GET' && url.pathname === '/') {
22
+ return new Response(JSON.stringify({
23
+ status: 'running',
24
+ endpoint: path
25
+ }), {
26
+ status: 200,
27
+ headers: { 'Content-Type': 'application/json' }
28
+ });
29
+ }
30
+ return new Response('Not Found', { status: 404 });
31
+ };
32
+ const getEndpointUrl = () => {
33
+ const displayHost = hostname === '0.0.0.0' ? 'localhost' : hostname;
34
+ return `http://${displayHost}:${port}${path}`;
35
+ };
36
+ return {
37
+ handler,
38
+ getEndpointUrl,
39
+ async start() {
40
+ const globalObj = globalThis;
41
+ if (globalObj.Bun) {
42
+ globalObj.Bun.serve({
43
+ port,
44
+ hostname,
45
+ fetch: handler
46
+ });
47
+ }
48
+ else {
49
+ const { createServer: createHttpServer } = await import('node:http');
50
+ const httpServer = createHttpServer(async (req, res) => {
51
+ const chunks = [];
52
+ for await (const chunk of req) {
53
+ chunks.push(chunk);
54
+ }
55
+ const body = Buffer.concat(chunks).toString();
56
+ const url = `http://${hostname}:${port}${req.url ?? '/'}`;
57
+ const headers = new Headers();
58
+ for (const [key, value] of Object.entries(req.headers)) {
59
+ if (value)
60
+ headers.set(key, Array.isArray(value) ? value[0] : value);
61
+ }
62
+ const method = req.method ?? 'GET';
63
+ const hasBody = method !== 'GET' && method !== 'HEAD';
64
+ const request = new Request(url, {
65
+ method,
66
+ headers,
67
+ body: hasBody ? body : null
68
+ });
69
+ const response = await handler(request);
70
+ const responseBody = await response.text();
71
+ res.writeHead(response.status, Object.fromEntries(response.headers.entries()));
72
+ res.end(responseBody);
73
+ });
74
+ httpServer.listen(port, hostname);
75
+ }
76
+ console.log();
77
+ console.log(` ${chalk_1.default.bold.hex('#5865F2')('discord-flow')} ${chalk_1.default.dim('powered by')} ${chalk_1.default.bold.hex('#1EBE38')('loop')}`);
78
+ console.log();
79
+ console.log(` ${chalk_1.default.green('➜')} ${chalk_1.default.bold('Local:')} ${chalk_1.default.cyan(`http://localhost:${port}${path}`)}`);
80
+ console.log();
81
+ if (!adapterConfig.publicKey) {
82
+ console.log(chalk_1.default.red(' ⚠ DISCORD_PUBLIC_KEY not set'));
83
+ console.log();
84
+ }
85
+ if (token) {
86
+ try {
87
+ const discord = new api_js_1.DiscordAPI({ token });
88
+ const app = await discord.getApplicationInfo();
89
+ const commandsMeta = adapterConfig.engine.getRegistry().getCommandsMetadata();
90
+ if (commandsMeta.length > 0) {
91
+ const commands = commandsMeta.map(cmd => {
92
+ const command = {
93
+ name: cmd.name,
94
+ description: cmd.description
95
+ };
96
+ if (cmd.options) {
97
+ command.options = cmd.options;
98
+ }
99
+ return command;
100
+ });
101
+ if (guildId) {
102
+ await discord.registerGuildCommands(app.id, guildId, commands);
103
+ console.log(` ${chalk_1.default.green('✓')} ${chalk_1.default.bold(commands.length)} comando(s) registrado(s) ${chalk_1.default.dim('(guild)')}`);
104
+ }
105
+ else {
106
+ await discord.registerCommands(app.id, commands);
107
+ console.log(` ${chalk_1.default.green('✓')} ${chalk_1.default.bold(commands.length)} comando(s) registrado(s) ${chalk_1.default.dim('(global)')}`);
108
+ }
109
+ commands.forEach(cmd => {
110
+ console.log(chalk_1.default.gray(` /${cmd.name}`));
111
+ });
112
+ console.log();
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.log(chalk_1.default.red(` ✗ Erro: ${error}`));
117
+ console.log();
118
+ }
119
+ }
120
+ console.log(chalk_1.default.dim(' Pressione Ctrl+C para parar'));
121
+ console.log();
122
+ },
123
+ stop() { }
124
+ };
125
+ }
126
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function verifySignature(body: string, signature: string, timestamp: string, publicKey: string): Promise<boolean>;
2
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.verifySignature = verifySignature;
7
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
8
+ const encoder = new TextEncoder();
9
+ async function verifySignature(body, signature, timestamp, publicKey) {
10
+ try {
11
+ const message = encoder.encode(timestamp + body);
12
+ const sig = hexToUint8Array(signature);
13
+ const key = hexToUint8Array(publicKey);
14
+ return tweetnacl_1.default.sign.detached.verify(message, sig, key);
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ }
20
+ function hexToUint8Array(hex) {
21
+ const length = hex.length / 2;
22
+ const array = new Uint8Array(length);
23
+ for (let i = 0; i < length; i++) {
24
+ array[i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16);
25
+ }
26
+ return array;
27
+ }
28
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":";;;;;AAIA,0CAeC;AAnBD,0DAA6B;AAE7B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAE3B,KAAK,UAAU,eAAe,CACjC,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,SAAiB;IAEjB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QAEvC,OAAO,mBAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAChC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@discord-flow/adapter-discord-http",
3
+ "version": "1.0.0",
4
+ "description": "HTTP adapter for Discord Interactions API",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "clean": "rimraf dist"
20
+ },
21
+ "dependencies": {
22
+ "@discord-flow/types": "^1.0.0",
23
+ "@discord-flow/core": "^1.0.0",
24
+ "chalk": "^5.3.0",
25
+ "tweetnacl": "^1.0.3"
26
+ },
27
+ "keywords": [
28
+ "discord",
29
+ "flow",
30
+ "http",
31
+ "interactions",
32
+ "adapter"
33
+ ],
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/discord-flow/discord-flow.git",
38
+ "directory": "packages/adapter-discord-http"
39
+ }
40
+ }