@buape/carbon 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +6 -6
- package/dist/src/abstracts/BaseCommand.d.ts +6 -3
- package/dist/src/abstracts/BaseCommand.d.ts.map +1 -1
- package/dist/src/abstracts/BaseCommand.js +17 -4
- package/dist/src/abstracts/BaseCommand.js.map +1 -1
- package/dist/src/abstracts/Plugin.d.ts +32 -1
- package/dist/src/abstracts/Plugin.d.ts.map +1 -1
- package/dist/src/abstracts/Plugin.js +3 -1
- package/dist/src/abstracts/Plugin.js.map +1 -1
- package/dist/src/adapters/bun/index.d.ts +8 -12
- package/dist/src/adapters/bun/index.d.ts.map +1 -1
- package/dist/src/adapters/bun/index.js +9 -13
- package/dist/src/adapters/bun/index.js.map +1 -1
- package/dist/src/adapters/fetch/index.d.ts +10 -0
- package/dist/src/adapters/fetch/index.d.ts.map +1 -0
- package/dist/src/adapters/fetch/index.js +45 -0
- package/dist/src/adapters/fetch/index.js.map +1 -0
- package/dist/src/adapters/node/index.d.ts +8 -12
- package/dist/src/adapters/node/index.d.ts.map +1 -1
- package/dist/src/adapters/node/index.js +10 -13
- package/dist/src/adapters/node/index.js.map +1 -1
- package/dist/src/classes/Client.d.ts +44 -6
- package/dist/src/classes/Client.d.ts.map +1 -1
- package/dist/src/classes/Client.js +59 -11
- package/dist/src/classes/Client.js.map +1 -1
- package/dist/src/classes/Listener.d.ts +8 -0
- package/dist/src/classes/Listener.d.ts.map +1 -0
- package/dist/src/classes/Listener.js +3 -0
- package/dist/src/classes/Listener.js.map +1 -0
- package/dist/src/index.d.ts +53 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/internals/EventHandler.d.ts +9 -0
- package/dist/src/internals/EventHandler.d.ts.map +1 -0
- package/dist/src/internals/EventHandler.js +16 -0
- package/dist/src/internals/EventHandler.js.map +1 -0
- package/dist/src/plugins/linked-roles/LinkedRoles.d.ts +23 -27
- package/dist/src/plugins/linked-roles/LinkedRoles.d.ts.map +1 -1
- package/dist/src/plugins/linked-roles/LinkedRoles.js +36 -28
- package/dist/src/plugins/linked-roles/LinkedRoles.js.map +1 -1
- package/dist/src/types/messagePayload.d.ts +37 -0
- package/dist/src/types/messagePayload.d.ts.map +1 -0
- package/dist/src/types/messagePayload.js +2 -0
- package/dist/src/types/messagePayload.js.map +1 -0
- package/dist/src/types.d.ts +2 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +6 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +1 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { RequestClient } from "@buape/carbon-request";
|
|
2
|
-
import { InteractionResponseType, InteractionType, Routes } from "discord-api-types/v10";
|
|
3
|
-
import { Plugin } from "../abstracts/Plugin.js";
|
|
2
|
+
import { ApplicationWebhookType, InteractionResponseType, InteractionType, Routes } from "discord-api-types/v10";
|
|
4
3
|
import { channelFactory } from "../factories/channelFactory.js";
|
|
5
4
|
import { CommandHandler } from "../internals/CommandHandler.js";
|
|
6
5
|
import { ComponentHandler } from "../internals/ComponentHandler.js";
|
|
6
|
+
import { EventHandler } from "../internals/EventHandler.js";
|
|
7
7
|
import { ModalHandler } from "../internals/ModalHandler.js";
|
|
8
8
|
import { Guild } from "../structures/Guild.js";
|
|
9
9
|
import { GuildMember } from "../structures/GuildMember.js";
|
|
@@ -13,7 +13,15 @@ import { concatUint8Arrays, subtleCrypto, valueToUint8Array } from "../utils.js"
|
|
|
13
13
|
/**
|
|
14
14
|
* The main client used to interact with Discord
|
|
15
15
|
*/
|
|
16
|
-
export class Client
|
|
16
|
+
export class Client {
|
|
17
|
+
/**
|
|
18
|
+
* The routes that the client will handle
|
|
19
|
+
*/
|
|
20
|
+
routes = [];
|
|
21
|
+
/**
|
|
22
|
+
* The plugins that the client has registered
|
|
23
|
+
*/
|
|
24
|
+
plugins = [];
|
|
17
25
|
/**
|
|
18
26
|
* The options used to initialize the client
|
|
19
27
|
*/
|
|
@@ -22,6 +30,10 @@ export class Client extends Plugin {
|
|
|
22
30
|
* The commands that the client has registered
|
|
23
31
|
*/
|
|
24
32
|
commands;
|
|
33
|
+
/**
|
|
34
|
+
* The event listeners that the client has registered
|
|
35
|
+
*/
|
|
36
|
+
listeners = [];
|
|
25
37
|
/**
|
|
26
38
|
* The rest client used to interact with the Discord API
|
|
27
39
|
*/
|
|
@@ -41,13 +53,18 @@ export class Client extends Plugin {
|
|
|
41
53
|
* @internal
|
|
42
54
|
*/
|
|
43
55
|
modalHandler;
|
|
56
|
+
/**
|
|
57
|
+
* The handler for events sent from Discord
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
eventHandler;
|
|
44
61
|
/**
|
|
45
62
|
* Creates a new client
|
|
46
63
|
* @param options The options used to initialize the client
|
|
47
64
|
* @param commands The commands that the client has registered
|
|
65
|
+
* @param plugins The plugins that the client should use
|
|
48
66
|
*/
|
|
49
|
-
constructor(options,
|
|
50
|
-
super();
|
|
67
|
+
constructor(options, handlers, plugins = []) {
|
|
51
68
|
if (!options.clientId)
|
|
52
69
|
throw new Error("Missing client ID");
|
|
53
70
|
if (!options.publicKey)
|
|
@@ -57,14 +74,23 @@ export class Client extends Plugin {
|
|
|
57
74
|
if (!options.deploySecret && !options.disableDeployRoute)
|
|
58
75
|
throw new Error("Missing deploy secret");
|
|
59
76
|
this.options = options;
|
|
60
|
-
this.commands = commands;
|
|
61
|
-
this.
|
|
77
|
+
this.commands = handlers.commands ?? [];
|
|
78
|
+
this.listeners = handlers.listeners ?? [];
|
|
79
|
+
// Remove trailing slashes from the base URL
|
|
80
|
+
options.baseUrl = options.baseUrl.replace(/\/+$/, "");
|
|
62
81
|
this.commandHandler = new CommandHandler(this);
|
|
63
82
|
this.componentHandler = new ComponentHandler(this);
|
|
64
83
|
this.modalHandler = new ModalHandler(this);
|
|
84
|
+
this.eventHandler = new EventHandler(this);
|
|
65
85
|
this.rest = new RequestClient(options.token, options.requestOptions);
|
|
86
|
+
this.appendRoutes();
|
|
87
|
+
for (const plugin of plugins) {
|
|
88
|
+
plugin.registerClient?.(this);
|
|
89
|
+
plugin.registerRoutes?.(this);
|
|
90
|
+
this.plugins.push(plugin);
|
|
91
|
+
}
|
|
66
92
|
if (!options.disableAutoRegister) {
|
|
67
|
-
for (const command of commands) {
|
|
93
|
+
for (const command of this.commands) {
|
|
68
94
|
for (const component of command.components)
|
|
69
95
|
this.componentHandler.registerComponent(new component());
|
|
70
96
|
for (const modal of command.modals)
|
|
@@ -89,6 +115,12 @@ export class Client extends Plugin {
|
|
|
89
115
|
handler: this.handleInteractionsRequest.bind(this),
|
|
90
116
|
disabled: this.options.disableInteractionsRoute
|
|
91
117
|
});
|
|
118
|
+
this.routes.push({
|
|
119
|
+
method: "POST",
|
|
120
|
+
path: "/events",
|
|
121
|
+
handler: this.handleEventsRequest.bind(this),
|
|
122
|
+
disabled: this.options.disableEventsRoute
|
|
123
|
+
});
|
|
92
124
|
}
|
|
93
125
|
/**
|
|
94
126
|
* Handle a request to deploy the commands to Discord
|
|
@@ -102,6 +134,22 @@ export class Client extends Plugin {
|
|
|
102
134
|
{ body: commands });
|
|
103
135
|
return new Response("OK", { status: 202 });
|
|
104
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Handle an interaction request from Discord
|
|
139
|
+
* @param req The request to handle
|
|
140
|
+
* @returns A response
|
|
141
|
+
*/
|
|
142
|
+
async handleEventsRequest(req) {
|
|
143
|
+
const isValid = await this.validateDiscordRequest(req);
|
|
144
|
+
if (!isValid)
|
|
145
|
+
return new Response("Unauthorized", { status: 401 });
|
|
146
|
+
const payload = (await req.json());
|
|
147
|
+
// All ping webhooks should respond with 204 and an empty body
|
|
148
|
+
if (payload.type === ApplicationWebhookType.Ping)
|
|
149
|
+
return new Response(null, { status: 204 });
|
|
150
|
+
this.eventHandler.handleEvent(payload); // Events will never return anything to Discord
|
|
151
|
+
return new Response(null, { status: 204 });
|
|
152
|
+
}
|
|
105
153
|
/**
|
|
106
154
|
* Handle an interaction request from Discord
|
|
107
155
|
* @param req The request to handle
|
|
@@ -109,7 +157,7 @@ export class Client extends Plugin {
|
|
|
109
157
|
* @returns A response
|
|
110
158
|
*/
|
|
111
159
|
async handleInteractionsRequest(req, ctx) {
|
|
112
|
-
const isValid = await this.
|
|
160
|
+
const isValid = await this.validateDiscordRequest(req);
|
|
113
161
|
if (!isValid)
|
|
114
162
|
return new Response("Unauthorized", { status: 401 });
|
|
115
163
|
const interaction = (await req.json());
|
|
@@ -147,10 +195,10 @@ export class Client extends Plugin {
|
|
|
147
195
|
return new Response("OK", { status: 202 });
|
|
148
196
|
}
|
|
149
197
|
/**
|
|
150
|
-
* Validate
|
|
198
|
+
* Validate a request from Discord
|
|
151
199
|
* @param req The request to validate
|
|
152
200
|
*/
|
|
153
|
-
async
|
|
201
|
+
async validateDiscordRequest(req) {
|
|
154
202
|
const body = await req.clone().text();
|
|
155
203
|
const signature = req.headers.get("X-Signature-Ed25519");
|
|
156
204
|
const timestamp = req.headers.get("X-Signature-Timestamp");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA6B,MAAM,uBAAuB,CAAA;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"Client.js","sourceRoot":"","sources":["../../../src/classes/Client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { APIWebhookEventApplicationAuthorizedData, APIWebhookEventEntitlementCreateData, ApplicationWebhookEventType } from "discord-api-types/v10";
|
|
2
|
+
import type { Client } from "./Client.js";
|
|
3
|
+
export type ListenerEventData<T extends ApplicationWebhookEventType> = T extends ApplicationWebhookEventType.ApplicationAuthorized ? APIWebhookEventApplicationAuthorizedData : T extends ApplicationWebhookEventType.EntitlementCreate ? APIWebhookEventEntitlementCreateData : never;
|
|
4
|
+
export declare abstract class Listener {
|
|
5
|
+
abstract type: ApplicationWebhookEventType;
|
|
6
|
+
abstract handle(data: ListenerEventData<typeof this.type>, client: Client): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Listener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listener.d.ts","sourceRoot":"","sources":["../../../src/classes/Listener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wCAAwC,EACxC,oCAAoC,EACpC,2BAA2B,EAC3B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,2BAA2B,IAClE,CAAC,SAAS,2BAA2B,CAAC,qBAAqB,GACxD,wCAAwC,GACxC,CAAC,SAAS,2BAA2B,CAAC,iBAAiB,GACtD,oCAAoC,GACpC,KAAK,CAAA;AAEV,8BAAsB,QAAQ;IAC7B,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAA;IAC1C,QAAQ,CAAC,MAAM,CACd,IAAI,EAAE,iBAAiB,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,EACzC,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Listener.js","sourceRoot":"","sources":["../../../src/classes/Listener.ts"],"names":[],"mappings":"AAcA,MAAM,OAAgB,QAAQ;CAM7B"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from "./createHandle.js";
|
|
2
1
|
export * from "./abstracts/AnySelectMenu.js";
|
|
3
2
|
export * from "./abstracts/AnySelectMenuInteraction.js";
|
|
4
3
|
export * from "./abstracts/Base.js";
|
|
@@ -18,6 +17,7 @@ export * from "./classes/Command.js";
|
|
|
18
17
|
export * from "./classes/CommandWithSubcommandGroups.js";
|
|
19
18
|
export * from "./classes/CommandWithSubcommands.js";
|
|
20
19
|
export * from "./classes/Embed.js";
|
|
20
|
+
export * from "./classes/Listener.js";
|
|
21
21
|
export * from "./classes/MentionableSelectMenu.js";
|
|
22
22
|
export * from "./classes/Modal.js";
|
|
23
23
|
export * from "./classes/RoleSelectMenu.js";
|
|
@@ -55,8 +55,58 @@ export * from "./structures/Message.js";
|
|
|
55
55
|
export * from "./structures/Role.js";
|
|
56
56
|
export * from "./structures/User.js";
|
|
57
57
|
export * from "discord-api-types/v10";
|
|
58
|
-
export * from "./adapters/shared.js";
|
|
59
|
-
export * from "./createHandle.js";
|
|
60
58
|
export * from "./types.js";
|
|
61
59
|
export * from "./utils.js";
|
|
60
|
+
export declare const Permission: {
|
|
61
|
+
readonly CreateInstantInvite: bigint;
|
|
62
|
+
readonly KickMembers: bigint;
|
|
63
|
+
readonly BanMembers: bigint;
|
|
64
|
+
readonly Administrator: bigint;
|
|
65
|
+
readonly ManageChannels: bigint;
|
|
66
|
+
readonly ManageGuild: bigint;
|
|
67
|
+
readonly AddReactions: bigint;
|
|
68
|
+
readonly ViewAuditLog: bigint;
|
|
69
|
+
readonly PrioritySpeaker: bigint;
|
|
70
|
+
readonly Stream: bigint;
|
|
71
|
+
readonly ViewChannel: bigint;
|
|
72
|
+
readonly SendMessages: bigint;
|
|
73
|
+
readonly SendTTSMessages: bigint;
|
|
74
|
+
readonly ManageMessages: bigint;
|
|
75
|
+
readonly EmbedLinks: bigint;
|
|
76
|
+
readonly AttachFiles: bigint;
|
|
77
|
+
readonly ReadMessageHistory: bigint;
|
|
78
|
+
readonly MentionEveryone: bigint;
|
|
79
|
+
readonly UseExternalEmojis: bigint;
|
|
80
|
+
readonly ViewGuildInsights: bigint;
|
|
81
|
+
readonly Connect: bigint;
|
|
82
|
+
readonly Speak: bigint;
|
|
83
|
+
readonly MuteMembers: bigint;
|
|
84
|
+
readonly DeafenMembers: bigint;
|
|
85
|
+
readonly MoveMembers: bigint;
|
|
86
|
+
readonly UseVAD: bigint;
|
|
87
|
+
readonly ChangeNickname: bigint;
|
|
88
|
+
readonly ManageNicknames: bigint;
|
|
89
|
+
readonly ManageRoles: bigint;
|
|
90
|
+
readonly ManageWebhooks: bigint;
|
|
91
|
+
readonly ManageEmojisAndStickers: bigint;
|
|
92
|
+
readonly ManageGuildExpressions: bigint;
|
|
93
|
+
readonly UseApplicationCommands: bigint;
|
|
94
|
+
readonly RequestToSpeak: bigint;
|
|
95
|
+
readonly ManageEvents: bigint;
|
|
96
|
+
readonly ManageThreads: bigint;
|
|
97
|
+
readonly CreatePublicThreads: bigint;
|
|
98
|
+
readonly CreatePrivateThreads: bigint;
|
|
99
|
+
readonly UseExternalStickers: bigint;
|
|
100
|
+
readonly SendMessagesInThreads: bigint;
|
|
101
|
+
readonly UseEmbeddedActivities: bigint;
|
|
102
|
+
readonly ModerateMembers: bigint;
|
|
103
|
+
readonly ViewCreatorMonetizationAnalytics: bigint;
|
|
104
|
+
readonly UseSoundboard: bigint;
|
|
105
|
+
readonly CreateGuildExpressions: bigint;
|
|
106
|
+
readonly CreateEvents: bigint;
|
|
107
|
+
readonly UseExternalSounds: bigint;
|
|
108
|
+
readonly SendVoiceMessages: bigint;
|
|
109
|
+
readonly SendPolls: bigint;
|
|
110
|
+
readonly UseExternalApps: bigint;
|
|
111
|
+
};
|
|
62
112
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yCAAyC,CAAA;AACvD,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qCAAqC,CAAA;AACnD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uCAAuC,CAAA;AACrD,cAAc,uBAAuB,CAAA;AAGrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0CAA0C,CAAA;AACxD,cAAc,qCAAqC,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAG3C,cAAc,+BAA+B,CAAA;AAG7C,cAAc,wCAAwC,CAAA;AACtD,cAAc,kCAAkC,CAAA;AAChD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iDAAiD,CAAA;AAC/D,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0CAA0C,CAAA;AACxD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,0CAA0C,CAAA;AAGxD,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0CAA0C,CAAA;AACxD,cAAc,sCAAsC,CAAA;AACpD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0CAA0C,CAAA;AACxD,cAAc,kCAAkC,CAAA;AAChD,cAAc,oCAAoC,CAAA;AAClD,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AAGpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAI1B,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAsB,CAAA"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export * from "./createHandle.js";
|
|
2
1
|
// ----- Abstracts -----
|
|
3
2
|
export * from "./abstracts/AnySelectMenu.js";
|
|
4
3
|
export * from "./abstracts/AnySelectMenuInteraction.js";
|
|
@@ -20,6 +19,7 @@ export * from "./classes/Command.js";
|
|
|
20
19
|
export * from "./classes/CommandWithSubcommandGroups.js";
|
|
21
20
|
export * from "./classes/CommandWithSubcommands.js";
|
|
22
21
|
export * from "./classes/Embed.js";
|
|
22
|
+
export * from "./classes/Listener.js";
|
|
23
23
|
export * from "./classes/MentionableSelectMenu.js";
|
|
24
24
|
export * from "./classes/Modal.js";
|
|
25
25
|
export * from "./classes/RoleSelectMenu.js";
|
|
@@ -61,8 +61,9 @@ export * from "./structures/Role.js";
|
|
|
61
61
|
export * from "./structures/User.js";
|
|
62
62
|
// ----- Misc -----
|
|
63
63
|
export * from "discord-api-types/v10";
|
|
64
|
-
export * from "./adapters/shared.js";
|
|
65
|
-
export * from "./createHandle.js";
|
|
66
64
|
export * from "./types.js";
|
|
67
65
|
export * from "./utils.js";
|
|
66
|
+
// ----- Re-exports -----
|
|
67
|
+
import { PermissionFlagsBits } from "discord-api-types/v10";
|
|
68
|
+
export const Permission = PermissionFlagsBits;
|
|
68
69
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yCAAyC,CAAA;AACvD,cAAc,qBAAqB,CAAA;AACnC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yCAAyC,CAAA;AACvD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,qCAAqC,CAAA;AACnD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uCAAuC,CAAA;AACrD,cAAc,uBAAuB,CAAA;AAErC,sBAAsB;AACtB,cAAc,qBAAqB,CAAA;AACnC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0CAA0C,CAAA;AACxD,cAAc,qCAAqC,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oCAAoC,CAAA;AAClD,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kBAAkB,CAAA;AAChC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAE3C,wBAAwB;AACxB,cAAc,+BAA+B,CAAA;AAE7C,wBAAwB;AACxB,cAAc,wCAAwC,CAAA;AACtD,cAAc,kCAAkC,CAAA;AAChD,cAAc,6CAA6C,CAAA;AAC3D,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mCAAmC,CAAA;AACjD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iDAAiD,CAAA;AAC/D,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0CAA0C,CAAA;AACxD,cAAc,4CAA4C,CAAA;AAC1D,cAAc,0CAA0C,CAAA;AAExD,yBAAyB;AACzB,cAAc,2BAA2B,CAAA;AACzC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,uBAAuB,CAAA;AACrC,cAAc,0CAA0C,CAAA;AACxD,cAAc,sCAAsC,CAAA;AACpD,cAAc,mCAAmC,CAAA;AACjD,cAAc,mCAAmC,CAAA;AACjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0CAA0C,CAAA;AACxD,cAAc,kCAAkC,CAAA;AAChD,cAAc,oCAAoC,CAAA;AAClD,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AAEpC,mBAAmB;AACnB,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAE1B,yBAAyB;AACzB,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAG,mBAAmB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type APIWebhookEvent } from "discord-api-types/v10";
|
|
2
|
+
import { Base } from "../abstracts/Base.js";
|
|
3
|
+
import type { Listener } from "../classes/Listener.js";
|
|
4
|
+
export declare class EventHandler extends Base {
|
|
5
|
+
listeners: Listener[];
|
|
6
|
+
registerListener(listener: (typeof this.listeners)[number]): void;
|
|
7
|
+
handleEvent(payload: APIWebhookEvent): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=EventHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/EventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,eAAe,EAEpB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAEtD,qBAAa,YAAa,SAAQ,IAAI;IACrC,SAAS,EAAE,QAAQ,EAAE,CAAK;IAE1B,gBAAgB,CAAC,QAAQ,EAAE,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;IAIpD,WAAW,CAAC,OAAO,EAAE,eAAe;CAK1C"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ApplicationWebhookType } from "discord-api-types/v10";
|
|
2
|
+
import { Base } from "../abstracts/Base.js";
|
|
3
|
+
export class EventHandler extends Base {
|
|
4
|
+
listeners = [];
|
|
5
|
+
registerListener(listener) {
|
|
6
|
+
this.listeners.push(listener);
|
|
7
|
+
}
|
|
8
|
+
async handleEvent(payload) {
|
|
9
|
+
if (payload.type !== ApplicationWebhookType.Event)
|
|
10
|
+
return;
|
|
11
|
+
const listener = this.listeners.find((x) => x.type === payload.event.type);
|
|
12
|
+
if (listener)
|
|
13
|
+
return await listener.handle(payload.event.data, this.client);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=EventHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventHandler.js","sourceRoot":"","sources":["../../../src/internals/EventHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,sBAAsB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C,MAAM,OAAO,YAAa,SAAQ,IAAI;IACrC,SAAS,GAAe,EAAE,CAAA;IAE1B,gBAAgB,CAAC,QAAyC;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAwB;QACzC,IAAI,OAAO,CAAC,IAAI,KAAK,sBAAsB,CAAC,KAAK;YAAE,OAAM;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1E,IAAI,QAAQ;YAAE,OAAO,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5E,CAAC;CACD"}
|
|
@@ -3,10 +3,6 @@ import type { Client } from "../../classes/Client.js";
|
|
|
3
3
|
import { type LinkedRolesOptions } from "./types.js";
|
|
4
4
|
declare module "../../classes/Client.d.ts" {
|
|
5
5
|
interface ClientOptions {
|
|
6
|
-
/**
|
|
7
|
-
* The base URL of the app
|
|
8
|
-
*/
|
|
9
|
-
baseUrl: string;
|
|
10
6
|
/**
|
|
11
7
|
* The client secret of the app, used for OAuth
|
|
12
8
|
*/
|
|
@@ -19,36 +15,36 @@ declare module "../../classes/Client.d.ts" {
|
|
|
19
15
|
*
|
|
20
16
|
* @example
|
|
21
17
|
* ```ts
|
|
22
|
-
* import {
|
|
18
|
+
* import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
|
|
23
19
|
* import { LinkedRoles } from "@buape/carbon/linked-roles"
|
|
24
20
|
*
|
|
25
|
-
* const
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* }
|
|
41
|
-
* }
|
|
42
|
-
* })
|
|
43
|
-
* return [client, linkedRoles]
|
|
21
|
+
* const linkedRoles = new LinkedRoles({
|
|
22
|
+
* metadata: [
|
|
23
|
+
* {
|
|
24
|
+
* key: "is_staff",
|
|
25
|
+
* name: "Verified Staff",
|
|
26
|
+
* description: "Whether the user is a verified staff member",
|
|
27
|
+
* type: ApplicationRoleConnectionMetadataType.BooleanEqual
|
|
28
|
+
* }
|
|
29
|
+
* ],
|
|
30
|
+
* metadataCheckers: {
|
|
31
|
+
* is_staff: async (userId) => {
|
|
32
|
+
* const allStaff = ["439223656200273932"]
|
|
33
|
+
* return allStaff.includes(userId)
|
|
34
|
+
* }
|
|
35
|
+
* }
|
|
44
36
|
* })
|
|
37
|
+
*
|
|
38
|
+
* const client = new Client({ ... }, [ ... ], [linkedRoles])
|
|
45
39
|
* ```
|
|
46
40
|
*/
|
|
47
41
|
export declare class LinkedRoles extends Plugin {
|
|
48
|
-
client
|
|
42
|
+
client?: Client;
|
|
49
43
|
options: LinkedRolesOptions;
|
|
50
|
-
constructor(
|
|
51
|
-
|
|
44
|
+
constructor(options: LinkedRolesOptions);
|
|
45
|
+
registerClient(client: Client): void;
|
|
46
|
+
registerRoutes(client: Client): void;
|
|
47
|
+
private assertRegistered;
|
|
52
48
|
/**
|
|
53
49
|
* Handle a request to deploy the linked roles to Discord
|
|
54
50
|
* @returns A response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedRoles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAA;AAUnB,OAAO,QAAQ,2BAA2B,CAAC;IAC1C,UAAU,aAAa;QACtB;;WAEG;QACH,
|
|
1
|
+
{"version":3,"file":"LinkedRoles.d.ts","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAEN,KAAK,kBAAkB,EACvB,MAAM,YAAY,CAAA;AAUnB,OAAO,QAAQ,2BAA2B,CAAC;IAC1C,UAAU,aAAa;QACtB;;WAEG;QACH,YAAY,EAAE,MAAM,CAAA;KACpB;CACD;AAOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,kBAAkB,CAAA;gBAEf,OAAO,EAAE,kBAAkB;IAKhC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpC,cAAc,CAAC,MAAM,EAAE,MAAM;IAsBpC,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;IACU,mBAAmB;IAKhC;;;OAGG;IACU,6BAA6B;IAU1C;;;;OAIG;IACU,qCAAqC,CAAC,GAAG,EAAE,OAAO;YA8BjD,uBAAuB;YAiCvB,cAAc;YA8Bd,cAAc;YAyBd,WAAW;CAsBzB"}
|
|
@@ -10,67 +10,70 @@ import { ApplicationRoleConnectionMetadataType } from "./types.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @example
|
|
12
12
|
* ```ts
|
|
13
|
-
* import {
|
|
13
|
+
* import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
|
|
14
14
|
* import { LinkedRoles } from "@buape/carbon/linked-roles"
|
|
15
15
|
*
|
|
16
|
-
* const
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* }
|
|
32
|
-
* }
|
|
33
|
-
* })
|
|
34
|
-
* return [client, linkedRoles]
|
|
16
|
+
* const linkedRoles = new LinkedRoles({
|
|
17
|
+
* metadata: [
|
|
18
|
+
* {
|
|
19
|
+
* key: "is_staff",
|
|
20
|
+
* name: "Verified Staff",
|
|
21
|
+
* description: "Whether the user is a verified staff member",
|
|
22
|
+
* type: ApplicationRoleConnectionMetadataType.BooleanEqual
|
|
23
|
+
* }
|
|
24
|
+
* ],
|
|
25
|
+
* metadataCheckers: {
|
|
26
|
+
* is_staff: async (userId) => {
|
|
27
|
+
* const allStaff = ["439223656200273932"]
|
|
28
|
+
* return allStaff.includes(userId)
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
35
31
|
* })
|
|
32
|
+
*
|
|
33
|
+
* const client = new Client({ ... }, [ ... ], [linkedRoles])
|
|
36
34
|
* ```
|
|
37
35
|
*/
|
|
38
36
|
export class LinkedRoles extends Plugin {
|
|
39
37
|
client;
|
|
40
38
|
options;
|
|
41
|
-
constructor(
|
|
39
|
+
constructor(options) {
|
|
42
40
|
super();
|
|
41
|
+
this.options = { ...options };
|
|
42
|
+
}
|
|
43
|
+
registerClient(client) {
|
|
43
44
|
if (!client.options.baseUrl)
|
|
44
45
|
throw new Error("Missing base URL");
|
|
45
46
|
if (!client.options.clientSecret)
|
|
46
47
|
throw new Error("Missing client secret");
|
|
47
|
-
if (!client.options.deploySecret && !options.disableDeployRoute)
|
|
48
|
+
if (!client.options.deploySecret && !this.options.disableDeployRoute)
|
|
48
49
|
throw new Error("Missing deploy secret");
|
|
49
50
|
this.client = client;
|
|
50
|
-
this.options = { ...options };
|
|
51
|
-
this.appendRoutes();
|
|
52
51
|
}
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
registerRoutes(client) {
|
|
53
|
+
client.routes.push({
|
|
55
54
|
method: "GET",
|
|
56
55
|
path: "/linked-roles/deploy",
|
|
57
56
|
handler: this.handleDeployRequest.bind(this),
|
|
58
57
|
protected: true,
|
|
59
58
|
disabled: this.options.disableDeployRoute
|
|
60
59
|
});
|
|
61
|
-
|
|
60
|
+
client.routes.push({
|
|
62
61
|
method: "GET",
|
|
63
62
|
path: "/linked-roles/verify-user",
|
|
64
63
|
handler: this.handleUserVerificationRequest.bind(this),
|
|
65
64
|
disabled: this.options.disableVerifyUserRoute
|
|
66
65
|
});
|
|
67
|
-
|
|
66
|
+
client.routes.push({
|
|
68
67
|
method: "GET",
|
|
69
68
|
path: "/linked-roles/verify-user/callback",
|
|
70
69
|
handler: this.handleUserVerificationCallbackRequest.bind(this),
|
|
71
70
|
disabled: this.options.disableVerifyUserCallbackRoute
|
|
72
71
|
});
|
|
73
72
|
}
|
|
73
|
+
assertRegistered() {
|
|
74
|
+
if (!this.client)
|
|
75
|
+
throw new Error("Client not registered");
|
|
76
|
+
}
|
|
74
77
|
/**
|
|
75
78
|
* Handle a request to deploy the linked roles to Discord
|
|
76
79
|
* @returns A response
|
|
@@ -84,6 +87,7 @@ export class LinkedRoles extends Plugin {
|
|
|
84
87
|
* @returns A response
|
|
85
88
|
*/
|
|
86
89
|
async handleUserVerificationRequest() {
|
|
90
|
+
this.assertRegistered();
|
|
87
91
|
return new Response("Found", {
|
|
88
92
|
status: 302,
|
|
89
93
|
headers: {
|
|
@@ -97,6 +101,7 @@ export class LinkedRoles extends Plugin {
|
|
|
97
101
|
* @returns A response
|
|
98
102
|
*/
|
|
99
103
|
async handleUserVerificationCallbackRequest(req) {
|
|
104
|
+
this.assertRegistered();
|
|
100
105
|
const url = new URL(req.url);
|
|
101
106
|
const code = String(url.searchParams.get("code"));
|
|
102
107
|
const tokens = await this.getOAuthTokens(code);
|
|
@@ -150,6 +155,7 @@ export class LinkedRoles extends Plugin {
|
|
|
150
155
|
return result;
|
|
151
156
|
}
|
|
152
157
|
async getOAuthTokens(code) {
|
|
158
|
+
this.assertRegistered();
|
|
153
159
|
const url = "https://discord.com/api/v10/oauth2/token";
|
|
154
160
|
const body = new URLSearchParams({
|
|
155
161
|
client_id: this.client.options.clientId,
|
|
@@ -172,6 +178,7 @@ export class LinkedRoles extends Plugin {
|
|
|
172
178
|
throw new Error(`Error fetching OAuth tokens: [${response.status}] ${JSON.stringify(await response.json())}`);
|
|
173
179
|
}
|
|
174
180
|
async updateMetadata(userId, metadata, tokens) {
|
|
181
|
+
this.assertRegistered();
|
|
175
182
|
const url = `https://discord.com/api/v10/users/@me/applications/${this.client.options.clientId}/role-connection`;
|
|
176
183
|
const response = await fetch(url, {
|
|
177
184
|
method: "PUT",
|
|
@@ -186,6 +193,7 @@ export class LinkedRoles extends Plugin {
|
|
|
186
193
|
}
|
|
187
194
|
}
|
|
188
195
|
async setMetadata(data) {
|
|
196
|
+
this.assertRegistered();
|
|
189
197
|
const response = await fetch(`https://discord.com/api/v10/applications/${this.client.options.clientId}/role-connections/metadata`, {
|
|
190
198
|
method: "PUT",
|
|
191
199
|
body: JSON.stringify(data),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkedRoles.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAElD,OAAO,EACN,qCAAqC,EAErC,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"LinkedRoles.js","sourceRoot":"","sources":["../../../../src/plugins/linked-roles/LinkedRoles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Embed } from "./classes/Embed.js";
|
|
2
|
+
import type { Row } from "./classes/Row.js";
|
|
3
|
+
/**
|
|
4
|
+
* The data that is sent to Discord when sending a message.
|
|
5
|
+
* If you pass just a string, it will be treated as the content of the message.
|
|
6
|
+
*/
|
|
7
|
+
export type MessagePayload = {
|
|
8
|
+
/**
|
|
9
|
+
* The content of the message
|
|
10
|
+
*/
|
|
11
|
+
content?: string;
|
|
12
|
+
/**
|
|
13
|
+
* The embeds of the message
|
|
14
|
+
*/
|
|
15
|
+
embeds?: Embed[];
|
|
16
|
+
/**
|
|
17
|
+
* The components to send in the message, listed in rows
|
|
18
|
+
*/
|
|
19
|
+
components?: Row[];
|
|
20
|
+
/**
|
|
21
|
+
* The settings for which mentions are allowed in the message
|
|
22
|
+
*/
|
|
23
|
+
allowedMentions?: {
|
|
24
|
+
parse?: ("roles" | "users" | "everyone")[];
|
|
25
|
+
roles?: string[];
|
|
26
|
+
users?: string[];
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The flags for the message
|
|
30
|
+
*/
|
|
31
|
+
flags?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the message should be TTS
|
|
34
|
+
*/
|
|
35
|
+
tts?: boolean;
|
|
36
|
+
} | string;
|
|
37
|
+
//# sourceMappingURL=messagePayload.d.ts.map
|