@buape/carbon 0.6.0 → 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.
Files changed (55) hide show
  1. package/dist/package.json +6 -6
  2. package/dist/src/abstracts/BaseCommand.d.ts +6 -3
  3. package/dist/src/abstracts/BaseCommand.d.ts.map +1 -1
  4. package/dist/src/abstracts/BaseCommand.js +17 -4
  5. package/dist/src/abstracts/BaseCommand.js.map +1 -1
  6. package/dist/src/abstracts/Plugin.d.ts +32 -1
  7. package/dist/src/abstracts/Plugin.d.ts.map +1 -1
  8. package/dist/src/abstracts/Plugin.js +3 -1
  9. package/dist/src/abstracts/Plugin.js.map +1 -1
  10. package/dist/src/adapters/bun/index.d.ts +8 -12
  11. package/dist/src/adapters/bun/index.d.ts.map +1 -1
  12. package/dist/src/adapters/bun/index.js +9 -13
  13. package/dist/src/adapters/bun/index.js.map +1 -1
  14. package/dist/src/adapters/fetch/index.d.ts +10 -0
  15. package/dist/src/adapters/fetch/index.d.ts.map +1 -0
  16. package/dist/src/adapters/fetch/index.js +45 -0
  17. package/dist/src/adapters/fetch/index.js.map +1 -0
  18. package/dist/src/adapters/node/index.d.ts +8 -12
  19. package/dist/src/adapters/node/index.d.ts.map +1 -1
  20. package/dist/src/adapters/node/index.js +10 -13
  21. package/dist/src/adapters/node/index.js.map +1 -1
  22. package/dist/src/classes/Client.d.ts +43 -13
  23. package/dist/src/classes/Client.d.ts.map +1 -1
  24. package/dist/src/classes/Client.js +63 -17
  25. package/dist/src/classes/Client.js.map +1 -1
  26. package/dist/src/classes/Listener.d.ts +8 -0
  27. package/dist/src/classes/Listener.d.ts.map +1 -0
  28. package/dist/src/classes/Listener.js +3 -0
  29. package/dist/src/classes/Listener.js.map +1 -0
  30. package/dist/src/createHandle.js +1 -1
  31. package/dist/src/createHandle.js.map +1 -1
  32. package/dist/src/index.d.ts +57 -1
  33. package/dist/src/index.d.ts.map +1 -1
  34. package/dist/src/index.js +9 -2
  35. package/dist/src/index.js.map +1 -1
  36. package/dist/src/internals/EventHandler.d.ts +9 -0
  37. package/dist/src/internals/EventHandler.d.ts.map +1 -0
  38. package/dist/src/internals/EventHandler.js +16 -0
  39. package/dist/src/internals/EventHandler.js.map +1 -0
  40. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts +31 -23
  41. package/dist/src/plugins/linked-roles/LinkedRoles.d.ts.map +1 -1
  42. package/dist/src/plugins/linked-roles/LinkedRoles.js +41 -27
  43. package/dist/src/plugins/linked-roles/LinkedRoles.js.map +1 -1
  44. package/dist/src/types/messagePayload.d.ts +37 -0
  45. package/dist/src/types/messagePayload.d.ts.map +1 -0
  46. package/dist/src/types/messagePayload.js +2 -0
  47. package/dist/src/types/messagePayload.js.map +1 -0
  48. package/dist/src/types.d.ts +2 -1
  49. package/dist/src/types.d.ts.map +1 -1
  50. package/dist/src/utils.d.ts +6 -1
  51. package/dist/src/utils.d.ts.map +1 -1
  52. package/dist/src/utils.js +1 -0
  53. package/dist/src/utils.js.map +1 -1
  54. package/dist/tsconfig.tsbuildinfo +1 -1
  55. 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 extends Plugin {
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,39 +53,51 @@ 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, commands) {
50
- super();
51
- if (!options.baseUrl)
52
- throw new Error("Missing base URL");
53
- if (!options.clientSecret)
54
- throw new Error("Missing client secret");
67
+ constructor(options, handlers, plugins = []) {
55
68
  if (!options.clientId)
56
69
  throw new Error("Missing client ID");
57
70
  if (!options.publicKey)
58
71
  throw new Error("Missing public key");
59
72
  if (!options.token)
60
73
  throw new Error("Missing token");
74
+ if (!options.deploySecret && !options.disableDeployRoute)
75
+ throw new Error("Missing deploy secret");
61
76
  this.options = options;
62
- this.commands = commands;
63
- this.appendRoutes();
77
+ this.commands = handlers.commands ?? [];
78
+ this.listeners = handlers.listeners ?? [];
79
+ // Remove trailing slashes from the base URL
80
+ options.baseUrl = options.baseUrl.replace(/\/+$/, "");
64
81
  this.commandHandler = new CommandHandler(this);
65
82
  this.componentHandler = new ComponentHandler(this);
66
83
  this.modalHandler = new ModalHandler(this);
84
+ this.eventHandler = new EventHandler(this);
67
85
  this.rest = new RequestClient(options.token, options.requestOptions);
68
- if (!this.options.disableAutoRegister) {
69
- for (const command of commands) {
86
+ this.appendRoutes();
87
+ for (const plugin of plugins) {
88
+ plugin.registerClient?.(this);
89
+ plugin.registerRoutes?.(this);
90
+ this.plugins.push(plugin);
91
+ }
92
+ if (!options.disableAutoRegister) {
93
+ for (const command of this.commands) {
70
94
  for (const component of command.components)
71
95
  this.componentHandler.registerComponent(new component());
72
96
  for (const modal of command.modals)
73
97
  this.modalHandler.registerModal(new modal());
74
98
  }
75
99
  }
76
- if (this.options.autoDeploy) {
100
+ if (options.autoDeploy) {
77
101
  this.handleDeployRequest();
78
102
  }
79
103
  }
@@ -91,6 +115,12 @@ export class Client extends Plugin {
91
115
  handler: this.handleInteractionsRequest.bind(this),
92
116
  disabled: this.options.disableInteractionsRoute
93
117
  });
118
+ this.routes.push({
119
+ method: "POST",
120
+ path: "/events",
121
+ handler: this.handleEventsRequest.bind(this),
122
+ disabled: this.options.disableEventsRoute
123
+ });
94
124
  }
95
125
  /**
96
126
  * Handle a request to deploy the commands to Discord
@@ -104,6 +134,22 @@ export class Client extends Plugin {
104
134
  { body: commands });
105
135
  return new Response("OK", { status: 202 });
106
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
+ }
107
153
  /**
108
154
  * Handle an interaction request from Discord
109
155
  * @param req The request to handle
@@ -111,7 +157,7 @@ export class Client extends Plugin {
111
157
  * @returns A response
112
158
  */
113
159
  async handleInteractionsRequest(req, ctx) {
114
- const isValid = await this.validateInteractionRequest(req);
160
+ const isValid = await this.validateDiscordRequest(req);
115
161
  if (!isValid)
116
162
  return new Response("Unauthorized", { status: 401 });
117
163
  const interaction = (await req.json());
@@ -149,10 +195,10 @@ export class Client extends Plugin {
149
195
  return new Response("OK", { status: 202 });
150
196
  }
151
197
  /**
152
- * Validate the interaction request
198
+ * Validate a request from Discord
153
199
  * @param req The request to validate
154
200
  */
155
- async validateInteractionRequest(req) {
201
+ async validateDiscordRequest(req) {
156
202
  const body = await req.clone().text();
157
203
  const signature = req.headers.get("X-Signature-Ed25519");
158
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":"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"}
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,3 @@
1
+ export class Listener {
2
+ }
3
+ //# sourceMappingURL=Listener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Listener.js","sourceRoot":"","sources":["../../../src/classes/Listener.ts"],"names":[],"mappings":"AAcA,MAAM,OAAgB,QAAQ;CAM7B"}
@@ -17,7 +17,7 @@ export function createHandle(factory) {
17
17
  const routes = [client, ...plugins].flatMap((plugin) => plugin.routes);
18
18
  return async (req, ctx) => {
19
19
  const method = req.method;
20
- const url = new URL(req.url);
20
+ const url = new URL(req.url, "http://localhost");
21
21
  const pathname = //
22
22
  resolveRequestPathname(new URL(client.options.baseUrl), url);
23
23
  if (!pathname)
@@ -1 +1 @@
1
- {"version":3,"file":"createHandle.js","sourceRoot":"","sources":["../../src/createHandle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createHandle.js","sourceRoot":"","sources":["../../src/createHandle.ts"],"names":[],"mappings":"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"}
@@ -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";
@@ -10,6 +9,7 @@ export * from "./abstracts/BaseGuildChannel.js";
10
9
  export * from "./abstracts/BaseGuildTextChannel.js";
11
10
  export * from "./abstracts/BaseInteraction.js";
12
11
  export * from "./abstracts/GuildThreadOnlyChannel.js";
12
+ export * from "./abstracts/Plugin.js";
13
13
  export * from "./classes/Button.js";
14
14
  export * from "./classes/ChannelSelectMenu.js";
15
15
  export * from "./classes/Client.js";
@@ -17,6 +17,7 @@ export * from "./classes/Command.js";
17
17
  export * from "./classes/CommandWithSubcommandGroups.js";
18
18
  export * from "./classes/CommandWithSubcommands.js";
19
19
  export * from "./classes/Embed.js";
20
+ export * from "./classes/Listener.js";
20
21
  export * from "./classes/MentionableSelectMenu.js";
21
22
  export * from "./classes/Modal.js";
22
23
  export * from "./classes/RoleSelectMenu.js";
@@ -31,6 +32,7 @@ export * from "./internals/ChannelSelectMenuInteraction.js";
31
32
  export * from "./internals/CommandHandler.js";
32
33
  export * from "./internals/CommandInteraction.js";
33
34
  export * from "./internals/ComponentHandler.js";
35
+ export * from "./internals/FieldsHandler.js";
34
36
  export * from "./internals/MentionableSelectMenuInteraction.js";
35
37
  export * from "./internals/ModalHandler.js";
36
38
  export * from "./internals/ModalInteraction.js";
@@ -53,4 +55,58 @@ export * from "./structures/Message.js";
53
55
  export * from "./structures/Role.js";
54
56
  export * from "./structures/User.js";
55
57
  export * from "discord-api-types/v10";
58
+ export * from "./types.js";
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
+ };
56
112
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAGjC,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;AAGrD,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,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,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"}
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";
@@ -11,6 +10,7 @@ export * from "./abstracts/BaseGuildChannel.js";
11
10
  export * from "./abstracts/BaseGuildTextChannel.js";
12
11
  export * from "./abstracts/BaseInteraction.js";
13
12
  export * from "./abstracts/GuildThreadOnlyChannel.js";
13
+ export * from "./abstracts/Plugin.js";
14
14
  // ----- Classes -----
15
15
  export * from "./classes/Button.js";
16
16
  export * from "./classes/ChannelSelectMenu.js";
@@ -19,6 +19,7 @@ export * from "./classes/Command.js";
19
19
  export * from "./classes/CommandWithSubcommandGroups.js";
20
20
  export * from "./classes/CommandWithSubcommands.js";
21
21
  export * from "./classes/Embed.js";
22
+ export * from "./classes/Listener.js";
22
23
  export * from "./classes/MentionableSelectMenu.js";
23
24
  export * from "./classes/Modal.js";
24
25
  export * from "./classes/RoleSelectMenu.js";
@@ -35,6 +36,7 @@ export * from "./internals/ChannelSelectMenuInteraction.js";
35
36
  export * from "./internals/CommandHandler.js";
36
37
  export * from "./internals/CommandInteraction.js";
37
38
  export * from "./internals/ComponentHandler.js";
39
+ export * from "./internals/FieldsHandler.js";
38
40
  export * from "./internals/MentionableSelectMenuInteraction.js";
39
41
  export * from "./internals/ModalHandler.js";
40
42
  export * from "./internals/ModalInteraction.js";
@@ -57,6 +59,11 @@ export * from "./structures/GuildThreadChannel.js";
57
59
  export * from "./structures/Message.js";
58
60
  export * from "./structures/Role.js";
59
61
  export * from "./structures/User.js";
60
- // ----- Types -----
62
+ // ----- Misc -----
61
63
  export * from "discord-api-types/v10";
64
+ export * from "./types.js";
65
+ export * from "./utils.js";
66
+ // ----- Re-exports -----
67
+ import { PermissionFlagsBits } from "discord-api-types/v10";
68
+ export const Permission = PermissionFlagsBits;
62
69
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAEjC,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;AAErD,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,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,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,oBAAoB;AACpB,cAAc,uBAAuB,CAAA"}
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"}
@@ -1,42 +1,50 @@
1
1
  import { Plugin } from "../../abstracts/Plugin.js";
2
2
  import type { Client } from "../../classes/Client.js";
3
3
  import { type LinkedRolesOptions } from "./types.js";
4
+ declare module "../../classes/Client.d.ts" {
5
+ interface ClientOptions {
6
+ /**
7
+ * The client secret of the app, used for OAuth
8
+ */
9
+ clientSecret: string;
10
+ }
11
+ }
4
12
  /**
5
13
  * This class is the main class that is used for the linked roles feature of Carbon.
6
14
  * It handles all the additional routes and oauth.
7
15
  *
8
16
  * @example
9
17
  * ```ts
10
- * import { createHandle, Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
18
+ * import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
11
19
  * import { LinkedRoles } from "@buape/carbon/linked-roles"
12
20
  *
13
- * const handle = createHandle((env) => {
14
- * const client = new Client({ ... }, [ ... ])
15
- * const linkedRoles = new LinkedRoles(client, {
16
- * metadata: [
17
- * {
18
- * key: 'is_staff',
19
- * name: 'Verified Staff',
20
- * description: 'Whether the user is a verified staff member',
21
- * type: ApplicationRoleConnectionMetadataType.BooleanEqual
22
- * }
23
- * ],
24
- * metadataCheckers: {
25
- * is_staff: async (userId) => {
26
- * const allStaff = ["439223656200273932"]
27
- * return allStaff.includes(userId)
28
- * }
29
- * }
30
- * })
31
- * 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
+ * }
32
36
  * })
37
+ *
38
+ * const client = new Client({ ... }, [ ... ], [linkedRoles])
33
39
  * ```
34
40
  */
35
41
  export declare class LinkedRoles extends Plugin {
36
- client: Client;
42
+ client?: Client;
37
43
  options: LinkedRolesOptions;
38
- constructor(client: Client, options: LinkedRolesOptions);
39
- private appendRoutes;
44
+ constructor(options: LinkedRolesOptions);
45
+ registerClient(client: Client): void;
46
+ registerRoutes(client: Client): void;
47
+ private assertRegistered;
40
48
  /**
41
49
  * Handle a request to deploy the linked roles to Discord
42
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;AAenB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,kBAAkB,CAAA;gBAEf,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;IAQvD,OAAO,CAAC,YAAY;IAsBpB;;;OAGG;IACU,mBAAmB;IAKhC;;;OAGG;IACU,6BAA6B;IAS1C;;;;OAIG;IACU,qCAAqC,CAAC,GAAG,EAAE,OAAO;YA4BjD,uBAAuB;YAiCvB,cAAc;YA4Bd,cAAc;YAuBd,WAAW;CAoBzB"}
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,61 +10,70 @@ import { ApplicationRoleConnectionMetadataType } from "./types.js";
10
10
  *
11
11
  * @example
12
12
  * ```ts
13
- * import { createHandle, Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
13
+ * import { Client, ApplicationRoleConnectionMetadataType } from "@buape/carbon"
14
14
  * import { LinkedRoles } from "@buape/carbon/linked-roles"
15
15
  *
16
- * const handle = createHandle((env) => {
17
- * const client = new Client({ ... }, [ ... ])
18
- * const linkedRoles = new LinkedRoles(client, {
19
- * metadata: [
20
- * {
21
- * key: 'is_staff',
22
- * name: 'Verified Staff',
23
- * description: 'Whether the user is a verified staff member',
24
- * type: ApplicationRoleConnectionMetadataType.BooleanEqual
25
- * }
26
- * ],
27
- * metadataCheckers: {
28
- * is_staff: async (userId) => {
29
- * const allStaff = ["439223656200273932"]
30
- * return allStaff.includes(userId)
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(client, options) {
39
+ constructor(options) {
42
40
  super();
43
- this.client = client;
44
41
  this.options = { ...options };
45
- this.appendRoutes();
46
42
  }
47
- appendRoutes() {
48
- this.routes.push({
43
+ registerClient(client) {
44
+ if (!client.options.baseUrl)
45
+ throw new Error("Missing base URL");
46
+ if (!client.options.clientSecret)
47
+ throw new Error("Missing client secret");
48
+ if (!client.options.deploySecret && !this.options.disableDeployRoute)
49
+ throw new Error("Missing deploy secret");
50
+ this.client = client;
51
+ }
52
+ registerRoutes(client) {
53
+ client.routes.push({
49
54
  method: "GET",
50
55
  path: "/linked-roles/deploy",
51
56
  handler: this.handleDeployRequest.bind(this),
52
57
  protected: true,
53
58
  disabled: this.options.disableDeployRoute
54
59
  });
55
- this.routes.push({
60
+ client.routes.push({
56
61
  method: "GET",
57
62
  path: "/linked-roles/verify-user",
58
63
  handler: this.handleUserVerificationRequest.bind(this),
59
64
  disabled: this.options.disableVerifyUserRoute
60
65
  });
61
- this.routes.push({
66
+ client.routes.push({
62
67
  method: "GET",
63
68
  path: "/linked-roles/verify-user/callback",
64
69
  handler: this.handleUserVerificationCallbackRequest.bind(this),
65
70
  disabled: this.options.disableVerifyUserCallbackRoute
66
71
  });
67
72
  }
73
+ assertRegistered() {
74
+ if (!this.client)
75
+ throw new Error("Client not registered");
76
+ }
68
77
  /**
69
78
  * Handle a request to deploy the linked roles to Discord
70
79
  * @returns A response
@@ -78,6 +87,7 @@ export class LinkedRoles extends Plugin {
78
87
  * @returns A response
79
88
  */
80
89
  async handleUserVerificationRequest() {
90
+ this.assertRegistered();
81
91
  return new Response("Found", {
82
92
  status: 302,
83
93
  headers: {
@@ -91,6 +101,7 @@ export class LinkedRoles extends Plugin {
91
101
  * @returns A response
92
102
  */
93
103
  async handleUserVerificationCallbackRequest(req) {
104
+ this.assertRegistered();
94
105
  const url = new URL(req.url);
95
106
  const code = String(url.searchParams.get("code"));
96
107
  const tokens = await this.getOAuthTokens(code);
@@ -144,6 +155,7 @@ export class LinkedRoles extends Plugin {
144
155
  return result;
145
156
  }
146
157
  async getOAuthTokens(code) {
158
+ this.assertRegistered();
147
159
  const url = "https://discord.com/api/v10/oauth2/token";
148
160
  const body = new URLSearchParams({
149
161
  client_id: this.client.options.clientId,
@@ -166,6 +178,7 @@ export class LinkedRoles extends Plugin {
166
178
  throw new Error(`Error fetching OAuth tokens: [${response.status}] ${JSON.stringify(await response.json())}`);
167
179
  }
168
180
  async updateMetadata(userId, metadata, tokens) {
181
+ this.assertRegistered();
169
182
  const url = `https://discord.com/api/v10/users/@me/applications/${this.client.options.clientId}/role-connection`;
170
183
  const response = await fetch(url, {
171
184
  method: "PUT",
@@ -180,6 +193,7 @@ export class LinkedRoles extends Plugin {
180
193
  }
181
194
  }
182
195
  async setMetadata(data) {
196
+ this.assertRegistered();
183
197
  const response = await fetch(`https://discord.com/api/v10/applications/${this.client.options.clientId}/role-connections/metadata`, {
184
198
  method: "PUT",
185
199
  body: JSON.stringify(data),