loopbot-discord-sdk 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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +406 -0
  3. package/dist/Bot.d.ts +323 -0
  4. package/dist/Bot.d.ts.map +1 -0
  5. package/dist/Bot.js +482 -0
  6. package/dist/Bot.js.map +1 -0
  7. package/dist/Client.d.ts +309 -0
  8. package/dist/Client.d.ts.map +1 -0
  9. package/dist/Client.js +533 -0
  10. package/dist/Client.js.map +1 -0
  11. package/dist/builders/ActionRowBuilder.d.ts +11 -0
  12. package/dist/builders/ActionRowBuilder.d.ts.map +1 -0
  13. package/dist/builders/ActionRowBuilder.js +28 -0
  14. package/dist/builders/ActionRowBuilder.js.map +1 -0
  15. package/dist/builders/ButtonBuilder.d.ts +19 -0
  16. package/dist/builders/ButtonBuilder.d.ts.map +1 -0
  17. package/dist/builders/ButtonBuilder.js +46 -0
  18. package/dist/builders/ButtonBuilder.js.map +1 -0
  19. package/dist/builders/CommandBuilder.d.ts +51 -0
  20. package/dist/builders/CommandBuilder.d.ts.map +1 -0
  21. package/dist/builders/CommandBuilder.js +144 -0
  22. package/dist/builders/CommandBuilder.js.map +1 -0
  23. package/dist/builders/ContainerBuilder.d.ts +50 -0
  24. package/dist/builders/ContainerBuilder.d.ts.map +1 -0
  25. package/dist/builders/ContainerBuilder.js +67 -0
  26. package/dist/builders/ContainerBuilder.js.map +1 -0
  27. package/dist/builders/EmbedBuilder.d.ts +21 -0
  28. package/dist/builders/EmbedBuilder.d.ts.map +1 -0
  29. package/dist/builders/EmbedBuilder.js +63 -0
  30. package/dist/builders/EmbedBuilder.js.map +1 -0
  31. package/dist/builders/FileBuilder.d.ts +30 -0
  32. package/dist/builders/FileBuilder.d.ts.map +1 -0
  33. package/dist/builders/FileBuilder.js +42 -0
  34. package/dist/builders/FileBuilder.js.map +1 -0
  35. package/dist/builders/MediaGalleryBuilder.d.ts +33 -0
  36. package/dist/builders/MediaGalleryBuilder.d.ts.map +1 -0
  37. package/dist/builders/MediaGalleryBuilder.js +38 -0
  38. package/dist/builders/MediaGalleryBuilder.js.map +1 -0
  39. package/dist/builders/ModalBuilder.d.ts +21 -0
  40. package/dist/builders/ModalBuilder.d.ts.map +1 -0
  41. package/dist/builders/ModalBuilder.js +46 -0
  42. package/dist/builders/ModalBuilder.js.map +1 -0
  43. package/dist/builders/SectionBuilder.d.ts +43 -0
  44. package/dist/builders/SectionBuilder.d.ts.map +1 -0
  45. package/dist/builders/SectionBuilder.js +55 -0
  46. package/dist/builders/SectionBuilder.js.map +1 -0
  47. package/dist/builders/SelectMenuBuilder.d.ts +16 -0
  48. package/dist/builders/SelectMenuBuilder.d.ts.map +1 -0
  49. package/dist/builders/SelectMenuBuilder.js +50 -0
  50. package/dist/builders/SelectMenuBuilder.js.map +1 -0
  51. package/dist/builders/SeparatorBuilder.d.ts +31 -0
  52. package/dist/builders/SeparatorBuilder.d.ts.map +1 -0
  53. package/dist/builders/SeparatorBuilder.js +34 -0
  54. package/dist/builders/SeparatorBuilder.js.map +1 -0
  55. package/dist/builders/TextDisplayBuilder.d.ts +22 -0
  56. package/dist/builders/TextDisplayBuilder.d.ts.map +1 -0
  57. package/dist/builders/TextDisplayBuilder.js +32 -0
  58. package/dist/builders/TextDisplayBuilder.js.map +1 -0
  59. package/dist/context/BaseContext.d.ts +114 -0
  60. package/dist/context/BaseContext.d.ts.map +1 -0
  61. package/dist/context/BaseContext.js +189 -0
  62. package/dist/context/BaseContext.js.map +1 -0
  63. package/dist/context/ButtonContext.d.ts +30 -0
  64. package/dist/context/ButtonContext.d.ts.map +1 -0
  65. package/dist/context/ButtonContext.js +48 -0
  66. package/dist/context/ButtonContext.js.map +1 -0
  67. package/dist/context/CommandContext.d.ts +55 -0
  68. package/dist/context/CommandContext.d.ts.map +1 -0
  69. package/dist/context/CommandContext.js +98 -0
  70. package/dist/context/CommandContext.js.map +1 -0
  71. package/dist/context/ModalContext.d.ts +24 -0
  72. package/dist/context/ModalContext.d.ts.map +1 -0
  73. package/dist/context/ModalContext.js +54 -0
  74. package/dist/context/ModalContext.js.map +1 -0
  75. package/dist/context/SelectContext.d.ts +38 -0
  76. package/dist/context/SelectContext.d.ts.map +1 -0
  77. package/dist/context/SelectContext.js +60 -0
  78. package/dist/context/SelectContext.js.map +1 -0
  79. package/dist/index.d.ts +22 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +63 -0
  82. package/dist/index.js.map +1 -0
  83. package/dist/types/commands.d.ts +42 -0
  84. package/dist/types/commands.d.ts.map +1 -0
  85. package/dist/types/commands.js +25 -0
  86. package/dist/types/commands.js.map +1 -0
  87. package/dist/types/discord.d.ts +76 -0
  88. package/dist/types/discord.d.ts.map +1 -0
  89. package/dist/types/discord.js +4 -0
  90. package/dist/types/discord.js.map +1 -0
  91. package/dist/types/interactions.d.ts +78 -0
  92. package/dist/types/interactions.d.ts.map +1 -0
  93. package/dist/types/interactions.js +22 -0
  94. package/dist/types/interactions.js.map +1 -0
  95. package/package.json +63 -0
package/dist/Bot.js ADDED
@@ -0,0 +1,482 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bot = void 0;
4
+ const Client_1 = require("./Client");
5
+ const CommandBuilder_1 = require("./builders/CommandBuilder");
6
+ const CommandContext_1 = require("./context/CommandContext");
7
+ const ButtonContext_1 = require("./context/ButtonContext");
8
+ const ModalContext_1 = require("./context/ModalContext");
9
+ const SelectContext_1 = require("./context/SelectContext");
10
+ const interactions_1 = require("./types/interactions");
11
+ class Bot {
12
+ constructor(options) {
13
+ this.commands = [];
14
+ this.commandHandlers = new Map();
15
+ this.buttonHandlers = [];
16
+ this.modalHandlers = [];
17
+ this.selectHandlers = [];
18
+ this.applicationId = '';
19
+ this.running = false;
20
+ this.client = new Client_1.Client({
21
+ token: options.token,
22
+ baseUrl: options.apiUrl || 'https://api.loopbot.app',
23
+ });
24
+ }
25
+ command(name, descOrHandler, handler) {
26
+ const description = typeof descOrHandler === 'string' ? descOrHandler : name;
27
+ const actualHandler = typeof descOrHandler === 'function' ? descOrHandler : handler;
28
+ const builder = new CommandBuilder_1.CommandBuilder(name, description);
29
+ this.commands.push(builder);
30
+ this.commandHandlers.set(name, actualHandler);
31
+ return builder;
32
+ }
33
+ /**
34
+ * Register a button handler
35
+ */
36
+ onButton(customId, handler) {
37
+ this.buttonHandlers.push({ pattern: customId, handler });
38
+ return this;
39
+ }
40
+ /**
41
+ * Register a modal handler
42
+ */
43
+ onModal(customId, handler) {
44
+ this.modalHandlers.push({ pattern: customId, handler });
45
+ return this;
46
+ }
47
+ /**
48
+ * Register a select menu handler
49
+ */
50
+ onSelect(customId, handler) {
51
+ this.selectHandlers.push({ pattern: customId, handler });
52
+ return this;
53
+ }
54
+ /**
55
+ * Start the bot
56
+ */
57
+ async start() {
58
+ console.log('[Loop SDK] Starting bot...');
59
+ // Build command schema
60
+ const schema = this.commands.map((cmd) => cmd.toJSON());
61
+ // Connect and deploy commands
62
+ const { applicationId } = await this.client.connect(schema);
63
+ this.applicationId = applicationId;
64
+ console.log(`[Loop SDK] Connected to application ${applicationId}`);
65
+ console.log(`[Loop SDK] Deployed ${schema.length} commands`);
66
+ // Start SSE connection
67
+ this.client.connectSSE((interaction) => {
68
+ this.handleInteraction(interaction);
69
+ });
70
+ this.running = true;
71
+ console.log('[Loop SDK] Bot is running. Waiting for interactions...');
72
+ // Keep process alive
73
+ process.on('SIGINT', () => this.stop());
74
+ process.on('SIGTERM', () => this.stop());
75
+ }
76
+ /**
77
+ * Stop the bot
78
+ */
79
+ async stop() {
80
+ console.log('[Loop SDK] Stopping bot...');
81
+ this.running = false;
82
+ await this.client.disconnect();
83
+ console.log('[Loop SDK] Bot stopped');
84
+ }
85
+ /**
86
+ * Handle incoming interaction
87
+ */
88
+ async handleInteraction(interaction) {
89
+ try {
90
+ let response;
91
+ switch (interaction.type) {
92
+ case interactions_1.InteractionType.APPLICATION_COMMAND:
93
+ response = await this.handleCommand(interaction);
94
+ break;
95
+ case interactions_1.InteractionType.MESSAGE_COMPONENT:
96
+ response = await this.handleComponent(interaction);
97
+ break;
98
+ case interactions_1.InteractionType.MODAL_SUBMIT:
99
+ response = await this.handleModal(interaction);
100
+ break;
101
+ default:
102
+ console.warn(`[Loop SDK] Unknown interaction type: ${interaction.type}`);
103
+ return;
104
+ }
105
+ // Send response back to API
106
+ if (response) {
107
+ await this.client.respond(interaction.id, response);
108
+ }
109
+ }
110
+ catch (error) {
111
+ console.error('[Loop SDK] Error handling interaction:', error);
112
+ // Send error response
113
+ await this.client.respond(interaction.id, {
114
+ type: interactions_1.InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE,
115
+ data: {
116
+ content: 'An error occurred while processing your request.',
117
+ flags: 64, // Ephemeral
118
+ },
119
+ });
120
+ }
121
+ }
122
+ /**
123
+ * Handle slash command
124
+ */
125
+ async handleCommand(interaction) {
126
+ const commandName = interaction.data?.name;
127
+ if (!commandName)
128
+ return null;
129
+ // Check for subcommand
130
+ const subcommand = interaction.data?.options?.find((opt) => opt.type === 1 || opt.type === 2);
131
+ const fullName = subcommand
132
+ ? `${commandName}.${subcommand.name}`
133
+ : commandName;
134
+ const handler = this.commandHandlers.get(fullName) || this.commandHandlers.get(commandName);
135
+ if (!handler) {
136
+ console.warn(`[Loop SDK] No handler for command: ${fullName}`);
137
+ return null;
138
+ }
139
+ const ctx = new CommandContext_1.CommandContext(interaction, this.client, this.applicationId);
140
+ await handler(ctx);
141
+ return ctx.getResponse();
142
+ }
143
+ /**
144
+ * Handle button/select component
145
+ */
146
+ async handleComponent(interaction) {
147
+ const customId = interaction.data?.custom_id;
148
+ if (!customId)
149
+ return null;
150
+ const componentType = interaction.data?.component_type;
151
+ // Button (type 2)
152
+ if (componentType === 2) {
153
+ const entry = this.findHandler(this.buttonHandlers, customId);
154
+ if (entry) {
155
+ const ctx = new ButtonContext_1.ButtonContext(interaction, this.client, this.applicationId);
156
+ await entry.handler(ctx);
157
+ return ctx.getResponse();
158
+ }
159
+ }
160
+ // Select Menu (type 3+)
161
+ if (componentType && componentType >= 3) {
162
+ const entry = this.findHandler(this.selectHandlers, customId);
163
+ if (entry) {
164
+ const ctx = new SelectContext_1.SelectContext(interaction, this.client, this.applicationId);
165
+ await entry.handler(ctx);
166
+ return ctx.getResponse();
167
+ }
168
+ }
169
+ console.warn(`[Loop SDK] No handler for component: ${customId}`);
170
+ return null;
171
+ }
172
+ /**
173
+ * Handle modal submit
174
+ */
175
+ async handleModal(interaction) {
176
+ const customId = interaction.data?.custom_id;
177
+ if (!customId)
178
+ return null;
179
+ const entry = this.findHandler(this.modalHandlers, customId);
180
+ if (entry) {
181
+ const ctx = new ModalContext_1.ModalContext(interaction, this.client, this.applicationId);
182
+ await entry.handler(ctx);
183
+ return ctx.getResponse();
184
+ }
185
+ console.warn(`[Loop SDK] No handler for modal: ${customId}`);
186
+ return null;
187
+ }
188
+ /**
189
+ * Find matching handler for custom_id
190
+ */
191
+ findHandler(handlers, customId) {
192
+ return handlers.find((entry) => {
193
+ if (typeof entry.pattern === 'string') {
194
+ return entry.pattern === customId;
195
+ }
196
+ return entry.pattern.test(customId);
197
+ });
198
+ }
199
+ // ==================== MESSAGING ====================
200
+ /**
201
+ * Send a message to a channel
202
+ */
203
+ async send(channelId, data) {
204
+ return this.client.sendMessage(this.applicationId, channelId, data);
205
+ }
206
+ /**
207
+ * Edit a message
208
+ */
209
+ async editMessage(channelId, messageId, data) {
210
+ return this.client.editMessage(this.applicationId, channelId, messageId, data);
211
+ }
212
+ /**
213
+ * Delete a message
214
+ */
215
+ async deleteMessage(channelId, messageId) {
216
+ return this.client.deleteMessage(this.applicationId, channelId, messageId);
217
+ }
218
+ /**
219
+ * Get messages from a channel
220
+ */
221
+ async getMessages(channelId, options) {
222
+ return this.client.getMessages(this.applicationId, channelId, options);
223
+ }
224
+ /**
225
+ * Get a single message
226
+ */
227
+ async getMessage(channelId, messageId) {
228
+ return this.client.getMessage(this.applicationId, channelId, messageId);
229
+ }
230
+ // ==================== CHANNELS ====================
231
+ /**
232
+ * Get a channel
233
+ */
234
+ async getChannel(channelId) {
235
+ return this.client.getChannel(this.applicationId, channelId);
236
+ }
237
+ /**
238
+ * Create a channel
239
+ */
240
+ async createChannel(guildId, data) {
241
+ return this.client.createChannel(this.applicationId, guildId, data);
242
+ }
243
+ /**
244
+ * Modify a channel
245
+ */
246
+ async modifyChannel(channelId, data) {
247
+ return this.client.modifyChannel(this.applicationId, channelId, data);
248
+ }
249
+ /**
250
+ * Delete a channel
251
+ */
252
+ async deleteChannel(channelId) {
253
+ return this.client.deleteChannel(this.applicationId, channelId);
254
+ }
255
+ // ==================== GUILDS ====================
256
+ /**
257
+ * Get guild info
258
+ */
259
+ async getGuild(guildId) {
260
+ return this.client.getGuild(this.applicationId, guildId);
261
+ }
262
+ /**
263
+ * Get guild channels
264
+ */
265
+ async getGuildChannels(guildId) {
266
+ return this.client.getGuildChannels(this.applicationId, guildId);
267
+ }
268
+ /**
269
+ * Get guild roles
270
+ */
271
+ async getGuildRoles(guildId) {
272
+ return this.client.getGuildRoles(this.applicationId, guildId);
273
+ }
274
+ // ==================== MEMBERS ====================
275
+ /**
276
+ * Get a guild member
277
+ */
278
+ async getGuildMember(guildId, userId) {
279
+ return this.client.getGuildMember(this.applicationId, guildId, userId);
280
+ }
281
+ /**
282
+ * List guild members
283
+ */
284
+ async listGuildMembers(guildId, options) {
285
+ return this.client.listGuildMembers(this.applicationId, guildId, options);
286
+ }
287
+ /**
288
+ * Add role to member
289
+ */
290
+ async addMemberRole(guildId, userId, roleId) {
291
+ return this.client.addMemberRole(this.applicationId, guildId, userId, roleId);
292
+ }
293
+ /**
294
+ * Remove role from member
295
+ */
296
+ async removeMemberRole(guildId, userId, roleId) {
297
+ return this.client.removeMemberRole(this.applicationId, guildId, userId, roleId);
298
+ }
299
+ /**
300
+ * Kick member
301
+ */
302
+ async kickMember(guildId, userId) {
303
+ return this.client.kickMember(this.applicationId, guildId, userId);
304
+ }
305
+ /**
306
+ * Ban member
307
+ */
308
+ async banMember(guildId, userId, deleteMessageSeconds) {
309
+ return this.client.banMember(this.applicationId, guildId, userId, deleteMessageSeconds);
310
+ }
311
+ /**
312
+ * Unban member
313
+ */
314
+ async unbanMember(guildId, userId) {
315
+ return this.client.unbanMember(this.applicationId, guildId, userId);
316
+ }
317
+ // ==================== REACTIONS ====================
318
+ /**
319
+ * Add reaction to message
320
+ */
321
+ async addReaction(channelId, messageId, emoji) {
322
+ return this.client.addReaction(this.applicationId, channelId, messageId, emoji);
323
+ }
324
+ /**
325
+ * Remove reaction from message
326
+ */
327
+ async removeReaction(channelId, messageId, emoji) {
328
+ return this.client.removeReaction(this.applicationId, channelId, messageId, emoji);
329
+ }
330
+ // ==================== PINS ====================
331
+ /**
332
+ * Pin a message
333
+ */
334
+ async pinMessage(channelId, messageId) {
335
+ return this.client.pinMessage(this.applicationId, channelId, messageId);
336
+ }
337
+ /**
338
+ * Unpin a message
339
+ */
340
+ async unpinMessage(channelId, messageId) {
341
+ return this.client.unpinMessage(this.applicationId, channelId, messageId);
342
+ }
343
+ /**
344
+ * Get pinned messages
345
+ */
346
+ async getPinnedMessages(channelId) {
347
+ return this.client.getPinnedMessages(this.applicationId, channelId);
348
+ }
349
+ // ==================== USERS ====================
350
+ /**
351
+ * Get user info
352
+ */
353
+ async getUser(userId) {
354
+ return this.client.getUser(this.applicationId, userId);
355
+ }
356
+ // ==================== THREADS ====================
357
+ /**
358
+ * Create a thread
359
+ */
360
+ async createThread(channelId, data) {
361
+ return this.client.createThread(this.applicationId, channelId, data);
362
+ }
363
+ // ==================== FORUM CHANNELS ====================
364
+ /**
365
+ * Create forum post
366
+ */
367
+ async createForumPost(channelId, data) {
368
+ return this.client.createForumPost(this.applicationId, channelId, data);
369
+ }
370
+ /**
371
+ * Get forum tags
372
+ */
373
+ async getForumTags(channelId) {
374
+ return this.client.getForumTags(this.applicationId, channelId);
375
+ }
376
+ /**
377
+ * Modify forum tags
378
+ */
379
+ async modifyForumTags(channelId, tags) {
380
+ return this.client.modifyForumTags(this.applicationId, channelId, tags);
381
+ }
382
+ /**
383
+ * Archive thread
384
+ */
385
+ async archiveThread(threadId, archived = true) {
386
+ return this.client.archiveThread(this.applicationId, threadId, archived);
387
+ }
388
+ /**
389
+ * Lock thread
390
+ */
391
+ async lockThread(threadId, locked = true) {
392
+ return this.client.lockThread(this.applicationId, threadId, locked);
393
+ }
394
+ // ==================== ROLES ====================
395
+ /**
396
+ * Get roles
397
+ */
398
+ async getRoles(guildId) {
399
+ return this.client.getRoles(this.applicationId, guildId);
400
+ }
401
+ /**
402
+ * Create role
403
+ */
404
+ async createRole(guildId, data) {
405
+ return this.client.createRole(this.applicationId, guildId, data);
406
+ }
407
+ /**
408
+ * Modify role
409
+ */
410
+ async modifyRole(guildId, roleId, data) {
411
+ return this.client.modifyRole(this.applicationId, guildId, roleId, data);
412
+ }
413
+ /**
414
+ * Delete role
415
+ */
416
+ async deleteRole(guildId, roleId) {
417
+ return this.client.deleteRole(this.applicationId, guildId, roleId);
418
+ }
419
+ /**
420
+ * Reorder roles
421
+ */
422
+ async reorderRoles(guildId, positions) {
423
+ return this.client.reorderRoles(this.applicationId, guildId, positions);
424
+ }
425
+ // ==================== WEBHOOKS ====================
426
+ /**
427
+ * Create webhook
428
+ */
429
+ async createWebhook(channelId, data) {
430
+ return this.client.createWebhook(this.applicationId, channelId, data);
431
+ }
432
+ /**
433
+ * Get channel webhooks
434
+ */
435
+ async getChannelWebhooks(channelId) {
436
+ return this.client.getChannelWebhooks(this.applicationId, channelId);
437
+ }
438
+ /**
439
+ * Get guild webhooks
440
+ */
441
+ async getGuildWebhooks(guildId) {
442
+ return this.client.getGuildWebhooks(this.applicationId, guildId);
443
+ }
444
+ /**
445
+ * Get webhook
446
+ */
447
+ async getWebhook(webhookId) {
448
+ return this.client.getWebhook(this.applicationId, webhookId);
449
+ }
450
+ /**
451
+ * Modify webhook
452
+ */
453
+ async modifyWebhook(webhookId, data) {
454
+ return this.client.modifyWebhook(this.applicationId, webhookId, data);
455
+ }
456
+ /**
457
+ * Delete webhook
458
+ */
459
+ async deleteWebhook(webhookId) {
460
+ return this.client.deleteWebhook(this.applicationId, webhookId);
461
+ }
462
+ /**
463
+ * Execute webhook (send message)
464
+ */
465
+ async executeWebhook(webhookId, webhookToken, data, wait) {
466
+ return this.client.executeWebhook(webhookId, webhookToken, data, wait);
467
+ }
468
+ /**
469
+ * Edit webhook message
470
+ */
471
+ async editWebhookMessage(webhookId, webhookToken, messageId, data) {
472
+ return this.client.editWebhookMessage(webhookId, webhookToken, messageId, data);
473
+ }
474
+ /**
475
+ * Delete webhook message
476
+ */
477
+ async deleteWebhookMessage(webhookId, webhookToken, messageId) {
478
+ return this.client.deleteWebhookMessage(webhookId, webhookToken, messageId);
479
+ }
480
+ }
481
+ exports.Bot = Bot;
482
+ //# sourceMappingURL=Bot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bot.js","sourceRoot":"","sources":["../src/Bot.ts"],"names":[],"mappings":"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"}