@buape/carbon 0.9.0 → 0.10.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 (72) hide show
  1. package/dist/package.json +4 -4
  2. package/dist/src/abstracts/BaseComponentInteraction.d.ts.map +1 -1
  3. package/dist/src/abstracts/BaseComponentInteraction.js +2 -0
  4. package/dist/src/abstracts/BaseComponentInteraction.js.map +1 -1
  5. package/dist/src/abstracts/BaseInteraction.d.ts +1 -1
  6. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  7. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  8. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts +7 -1
  9. package/dist/src/abstracts/GuildThreadOnlyChannel.d.ts.map +1 -1
  10. package/dist/src/abstracts/GuildThreadOnlyChannel.js +13 -0
  11. package/dist/src/abstracts/GuildThreadOnlyChannel.js.map +1 -1
  12. package/dist/src/classes/Client.d.ts +6 -3
  13. package/dist/src/classes/Client.d.ts.map +1 -1
  14. package/dist/src/classes/Client.js +15 -4
  15. package/dist/src/classes/Client.js.map +1 -1
  16. package/dist/src/classes/ClientWithCaching.d.ts +51 -0
  17. package/dist/src/classes/ClientWithCaching.d.ts.map +1 -0
  18. package/dist/src/classes/ClientWithCaching.js +108 -0
  19. package/dist/src/classes/ClientWithCaching.js.map +1 -0
  20. package/dist/src/index.d.ts +3 -0
  21. package/dist/src/index.d.ts.map +1 -1
  22. package/dist/src/index.js +4 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/internals/Cache.d.ts +76 -0
  25. package/dist/src/internals/Cache.d.ts.map +1 -0
  26. package/dist/src/internals/Cache.js +122 -0
  27. package/dist/src/internals/Cache.js.map +1 -0
  28. package/dist/src/internals/CommandHandler.d.ts +1 -0
  29. package/dist/src/internals/CommandHandler.d.ts.map +1 -1
  30. package/dist/src/internals/CommandHandler.js +19 -10
  31. package/dist/src/internals/CommandHandler.js.map +1 -1
  32. package/dist/src/plugins/gateway/GatewayPlugin.d.ts +46 -2
  33. package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -1
  34. package/dist/src/plugins/gateway/GatewayPlugin.js +120 -6
  35. package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -1
  36. package/dist/src/plugins/gateway/types.d.ts +58 -0
  37. package/dist/src/plugins/gateway/types.d.ts.map +1 -1
  38. package/dist/src/plugins/gateway/types.js.map +1 -1
  39. package/dist/src/plugins/gateway/utils/payload.d.ts +7 -5
  40. package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -1
  41. package/dist/src/plugins/gateway/utils/payload.js +18 -0
  42. package/dist/src/plugins/gateway/utils/payload.js.map +1 -1
  43. package/dist/src/plugins/gateway/utils/rateLimit.d.ts +41 -0
  44. package/dist/src/plugins/gateway/utils/rateLimit.d.ts.map +1 -0
  45. package/dist/src/plugins/gateway/utils/rateLimit.js +61 -0
  46. package/dist/src/plugins/gateway/utils/rateLimit.js.map +1 -0
  47. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts +1 -0
  48. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.d.ts.map +1 -1
  49. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js +1 -0
  50. package/dist/src/plugins/gateway-forwarder/ShardedGatewayForwarderPlugin.js.map +1 -1
  51. package/dist/src/plugins/paginator/GoToPageModal.d.ts +24 -0
  52. package/dist/src/plugins/paginator/GoToPageModal.d.ts.map +1 -0
  53. package/dist/src/plugins/paginator/GoToPageModal.js +50 -0
  54. package/dist/src/plugins/paginator/GoToPageModal.js.map +1 -0
  55. package/dist/src/plugins/paginator/Paginator.d.ts +2 -0
  56. package/dist/src/plugins/paginator/Paginator.d.ts.map +1 -1
  57. package/dist/src/plugins/paginator/Paginator.js +40 -12
  58. package/dist/src/plugins/paginator/Paginator.js.map +1 -1
  59. package/dist/src/plugins/paginator/index.d.ts +2 -1
  60. package/dist/src/plugins/paginator/index.d.ts.map +1 -1
  61. package/dist/src/plugins/paginator/index.js +2 -1
  62. package/dist/src/plugins/paginator/index.js.map +1 -1
  63. package/dist/src/plugins/sharding/ShardingPlugin.d.ts +2 -1
  64. package/dist/src/plugins/sharding/ShardingPlugin.d.ts.map +1 -1
  65. package/dist/src/plugins/sharding/ShardingPlugin.js +9 -1
  66. package/dist/src/plugins/sharding/ShardingPlugin.js.map +1 -1
  67. package/dist/src/structures/Message.d.ts +3 -3
  68. package/dist/src/structures/Message.d.ts.map +1 -1
  69. package/dist/src/structures/Message.js +10 -6
  70. package/dist/src/structures/Message.js.map +1 -1
  71. package/dist/tsconfig.tsbuildinfo +1 -1
  72. package/package.json +4 -4
@@ -0,0 +1,76 @@
1
+ import type { Client } from "../classes/Client.js";
2
+ import type { GuildMember } from "../structures/GuildMember.js";
3
+ import type { Webhook } from "../structures/Webhook.js";
4
+ export type CacheTypes = {
5
+ user: Awaited<ReturnType<typeof Client.prototype.fetchUser>>;
6
+ guild: Awaited<ReturnType<typeof Client.prototype.fetchGuild>>;
7
+ channel: Awaited<ReturnType<typeof Client.prototype.fetchChannel>>;
8
+ role: Awaited<ReturnType<typeof Client.prototype.fetchRole>>;
9
+ member: Awaited<ReturnType<typeof Client.prototype.fetchMember>>;
10
+ message: Awaited<ReturnType<typeof Client.prototype.fetchMessage>>;
11
+ voiceState: Awaited<ReturnType<typeof GuildMember.prototype.getVoiceState>>;
12
+ permissions: bigint[];
13
+ webhook: Webhook<false>;
14
+ };
15
+ export interface CacheEntry<V> {
16
+ value: V;
17
+ expiresAt?: number;
18
+ }
19
+ export interface CacheOptions {
20
+ defaultExpiry?: number;
21
+ }
22
+ export declare class Cache<K extends keyof CacheTypes | string, V = K extends keyof CacheTypes ? CacheTypes[K] : unknown> {
23
+ private cache;
24
+ private defaultExpiry;
25
+ constructor(options?: CacheOptions);
26
+ /**
27
+ * Get a value from the cache
28
+ * @param key The key to get
29
+ * @returns The value if it exists and hasn't expired, undefined otherwise
30
+ */
31
+ get(key: K): V | undefined;
32
+ /**
33
+ * Set a value in the cache
34
+ * @param key The key to set
35
+ * @param value The value to set
36
+ * @param expiresIn Optional time in milliseconds until the entry expires
37
+ */
38
+ set(key: K, value: V, expiresIn?: number): void;
39
+ /**
40
+ * Delete a value from the cache
41
+ * @param key The key to delete
42
+ * @returns Whether the key was deleted
43
+ */
44
+ delete(key: K): boolean;
45
+ /**
46
+ * Clear all values of a specific type from the cache
47
+ * @param type The type to clear
48
+ */
49
+ clearType(type: K): void;
50
+ /**
51
+ * Clear all values from the cache
52
+ */
53
+ clear(): void;
54
+ /**
55
+ * Get the size of the cache
56
+ */
57
+ get size(): number;
58
+ /**
59
+ * Check if a key exists in the cache and hasn't expired
60
+ * @param key The key to check
61
+ */
62
+ has(key: K): boolean;
63
+ /**
64
+ * Get all keys in the cache that haven't expired
65
+ */
66
+ keys(): K[];
67
+ /**
68
+ * Get all values in the cache that haven't expired
69
+ */
70
+ values(): V[];
71
+ /**
72
+ * Get all entries in the cache that haven't expired
73
+ */
74
+ entries(): [K, V][];
75
+ }
76
+ //# sourceMappingURL=Cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.d.ts","sourceRoot":"","sources":["../../../src/internals/Cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAEvD,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAC9D,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IAClE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;IAC5D,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAChE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IAClE,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAA;IAC3E,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;CACvB,CAAA;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC5B,KAAK,EAAE,CAAC,CAAA;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,YAAY;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,KAAK,CACjB,CAAC,SAAS,MAAM,UAAU,GAAG,MAAM,EACnC,CAAC,GAAG,CAAC,SAAS,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAExD,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,GAAE,YAAiB;IAMtC;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAYjC;;;;;OAKG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtD;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAI9B;;;OAGG;IACI,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAQ/B;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,OAAO;IAY3B;;OAEG;IACI,IAAI,IAAI,CAAC,EAAE;IAYlB;;OAEG;IACI,MAAM,IAAI,CAAC,EAAE;IAYpB;;OAEG;IACI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CAW1B"}
@@ -0,0 +1,122 @@
1
+ export class Cache {
2
+ cache = new Map();
3
+ defaultExpiry = 1000 * 60 * 60 * 24; // 1 day
4
+ constructor(options = {}) {
5
+ if (options.defaultExpiry) {
6
+ this.defaultExpiry = options.defaultExpiry;
7
+ }
8
+ }
9
+ /**
10
+ * Get a value from the cache
11
+ * @param key The key to get
12
+ * @returns The value if it exists and hasn't expired, undefined otherwise
13
+ */
14
+ get(key) {
15
+ const entry = this.cache.get(key);
16
+ if (!entry)
17
+ return undefined;
18
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
19
+ this.delete(key);
20
+ return undefined;
21
+ }
22
+ return entry.value;
23
+ }
24
+ /**
25
+ * Set a value in the cache
26
+ * @param key The key to set
27
+ * @param value The value to set
28
+ * @param expiresIn Optional time in milliseconds until the entry expires
29
+ */
30
+ set(key, value, expiresIn) {
31
+ const expiresAt = expiresIn ? Date.now() + expiresIn : this.defaultExpiry;
32
+ this.cache.set(key, { value, expiresAt });
33
+ }
34
+ /**
35
+ * Delete a value from the cache
36
+ * @param key The key to delete
37
+ * @returns Whether the key was deleted
38
+ */
39
+ delete(key) {
40
+ return this.cache.delete(key);
41
+ }
42
+ /**
43
+ * Clear all values of a specific type from the cache
44
+ * @param type The type to clear
45
+ */
46
+ clearType(type) {
47
+ for (const [key] of this.cache) {
48
+ if (key === type) {
49
+ this.delete(key);
50
+ }
51
+ }
52
+ }
53
+ /**
54
+ * Clear all values from the cache
55
+ */
56
+ clear() {
57
+ this.cache.clear();
58
+ }
59
+ /**
60
+ * Get the size of the cache
61
+ */
62
+ get size() {
63
+ return this.cache.size;
64
+ }
65
+ /**
66
+ * Check if a key exists in the cache and hasn't expired
67
+ * @param key The key to check
68
+ */
69
+ has(key) {
70
+ const entry = this.cache.get(key);
71
+ if (!entry)
72
+ return false;
73
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
74
+ this.delete(key);
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+ /**
80
+ * Get all keys in the cache that haven't expired
81
+ */
82
+ keys() {
83
+ const keys = [];
84
+ for (const [key, entry] of this.cache) {
85
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
86
+ this.delete(key);
87
+ continue;
88
+ }
89
+ keys.push(key);
90
+ }
91
+ return keys;
92
+ }
93
+ /**
94
+ * Get all values in the cache that haven't expired
95
+ */
96
+ values() {
97
+ const values = [];
98
+ for (const [key, entry] of this.cache) {
99
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
100
+ this.delete(key);
101
+ continue;
102
+ }
103
+ values.push(entry.value);
104
+ }
105
+ return values;
106
+ }
107
+ /**
108
+ * Get all entries in the cache that haven't expired
109
+ */
110
+ entries() {
111
+ const entries = [];
112
+ for (const [key, entry] of this.cache) {
113
+ if (entry.expiresAt && entry.expiresAt < Date.now()) {
114
+ this.delete(key);
115
+ continue;
116
+ }
117
+ entries.push([key, entry.value]);
118
+ }
119
+ return entries;
120
+ }
121
+ }
122
+ //# sourceMappingURL=Cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../src/internals/Cache.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type APIApplicationCommandAutocompleteInteraction, type APIApplicationCommandInteraction } from "discord-api-types/v10";
2
2
  import { Base } from "../abstracts/Base.js";
3
3
  export declare class CommandHandler extends Base {
4
+ private getSubcommand;
4
5
  private getCommand;
5
6
  /**
6
7
  * Handle a command interaction
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,4CAA4C,EACjD,KAAK,gCAAgC,EAIrC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAQ3C,qBAAa,cAAe,SAAQ,IAAI;IACvC,OAAO,CAAC,UAAU;IAgElB;;;OAGG;IACG,wBAAwB,CAC7B,cAAc,EAAE,gCAAgC;IAoC3C,6BAA6B,CAClC,cAAc,EAAE,4CAA4C;CAsB7D"}
1
+ {"version":3,"file":"CommandHandler.d.ts","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,4CAA4C,EACjD,KAAK,gCAAgC,EAIrC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAQ3C,qBAAa,cAAe,SAAQ,IAAI;IACvC,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,UAAU;IA6DlB;;;OAGG;IACG,wBAAwB,CAC7B,cAAc,EAAE,gCAAgC;IAoC3C,6BAA6B,CAClC,cAAc,EAAE,4CAA4C;CAsB7D"}
@@ -6,6 +6,16 @@ import { CommandWithSubcommands } from "../classes/CommandWithSubcommands.js";
6
6
  import { AutocompleteInteraction } from "./AutocompleteInteraction.js";
7
7
  import { CommandInteraction } from "./CommandInteraction.js";
8
8
  export class CommandHandler extends Base {
9
+ getSubcommand(command, rawInteraction) {
10
+ if (rawInteraction.data.type !== ApplicationCommandType.ChatInput) {
11
+ throw new Error("Subcommands must be used with ChatInput");
12
+ }
13
+ const data = rawInteraction.data;
14
+ const subcommand = command.subcommands.find((x) => x.name === data.options?.[0]?.name);
15
+ if (!subcommand)
16
+ throw new Error("Subcommand not found");
17
+ return subcommand;
18
+ }
9
19
  getCommand(rawInteraction) {
10
20
  let command = this.client.commands.find((x) => x.name === rawInteraction.data.name);
11
21
  if (!command)
@@ -18,8 +28,14 @@ export class CommandHandler extends Base {
18
28
  }
19
29
  const data = rawInteraction.data;
20
30
  const subcommandGroupName = data.options?.find((x) => x.type === ApplicationCommandOptionType.SubcommandGroup)?.name;
21
- if (!subcommandGroupName)
22
- throw new Error("No subcommand group name");
31
+ if (!subcommandGroupName) {
32
+ try {
33
+ return this.getSubcommand(command, rawInteraction);
34
+ }
35
+ catch {
36
+ throw new Error("No subcommand group name or subcommand found");
37
+ }
38
+ }
23
39
  const subcommandGroup = command.subcommandGroups.find((x) => x.name === subcommandGroupName);
24
40
  if (!subcommandGroup)
25
41
  throw new Error("Subcommand group not found");
@@ -32,14 +48,7 @@ export class CommandHandler extends Base {
32
48
  return subcommand;
33
49
  }
34
50
  if (command instanceof CommandWithSubcommands) {
35
- if (rawInteraction.data.type !== ApplicationCommandType.ChatInput) {
36
- throw new Error("Subcommands must be used with ChatInput");
37
- }
38
- const data = rawInteraction.data;
39
- const subcommand = command.subcommands.find((x) => x.name === data.options?.[0]?.name);
40
- if (!subcommand)
41
- throw new Error("Subcommand not found");
42
- return subcommand;
51
+ return this.getSubcommand(command, rawInteraction);
43
52
  }
44
53
  if (command instanceof Command) {
45
54
  return command;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandHandler.js","sourceRoot":"","sources":["../../../src/internals/CommandHandler.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ import { EventEmitter } from "node:events";
2
2
  import WebSocket from "ws";
3
3
  import { Plugin } from "../../abstracts/Plugin.js";
4
4
  import type { Client } from "../../classes/Client.js";
5
- import { type APIGatewayBotInfo, type GatewayPayload, type GatewayPluginOptions, type GatewayState } from "./types.js";
5
+ import { type APIGatewayBotInfo, type GatewayPayload, type GatewayPluginOptions, type GatewayState, type RequestGuildMembersData, type UpdatePresenceData, type UpdateVoiceStateData } from "./types.js";
6
6
  import { ConnectionMonitor } from "./utils/monitor.js";
7
+ import { GatewayRateLimit } from "./utils/rateLimit.js";
7
8
  export declare class GatewayPlugin extends Plugin {
8
9
  readonly id = "gateway";
9
10
  protected client?: Client;
@@ -11,6 +12,7 @@ export declare class GatewayPlugin extends Plugin {
11
12
  protected state: GatewayState;
12
13
  protected ws: WebSocket | null;
13
14
  protected monitor: ConnectionMonitor;
15
+ protected rateLimit: GatewayRateLimit;
14
16
  heartbeatInterval?: NodeJS.Timeout;
15
17
  sequence: number | null;
16
18
  lastHeartbeatAck: boolean;
@@ -19,7 +21,10 @@ export declare class GatewayPlugin extends Plugin {
19
21
  shardId?: number;
20
22
  totalShards?: number;
21
23
  protected gatewayInfo?: APIGatewayBotInfo;
24
+ isConnected: boolean;
25
+ protected pings: number[];
22
26
  constructor(options: GatewayPluginOptions, gatewayInfo?: APIGatewayBotInfo);
27
+ get ping(): number | null;
23
28
  registerClient(client: Client): Promise<void>;
24
29
  connect(resume?: boolean): void;
25
30
  disconnect(): void;
@@ -35,7 +40,46 @@ export declare class GatewayPlugin extends Plugin {
35
40
  protected handleReconnect(): void;
36
41
  protected canResume(): boolean;
37
42
  protected resume(): void;
38
- send(payload: GatewayPayload): void;
43
+ send(payload: GatewayPayload, skipRateLimit?: boolean): void;
39
44
  protected identify(): void;
45
+ /**
46
+ * Update the bot's presence (status, activity, etc.)
47
+ * @param data Presence data to update
48
+ */
49
+ updatePresence(data: UpdatePresenceData): void;
50
+ /**
51
+ * Update the bot's voice state
52
+ * @param data Voice state data to update
53
+ */
54
+ updateVoiceState(data: UpdateVoiceStateData): void;
55
+ /**
56
+ * Request guild members from Discord. The data will come in through the GUILD_MEMBERS_CHUNK event, not as a return on this function.
57
+ * @param data Guild members request data
58
+ */
59
+ requestGuildMembers(data: RequestGuildMembersData): void;
60
+ /**
61
+ * Get the current rate limit status
62
+ */
63
+ getRateLimitStatus(): {
64
+ remainingEvents: number;
65
+ resetTime: number;
66
+ currentEventCount: number;
67
+ };
68
+ /**
69
+ * Get information about configured intents
70
+ */
71
+ getIntentsInfo(): {
72
+ intents: number;
73
+ hasGuilds: boolean;
74
+ hasGuildMembers: boolean;
75
+ hasGuildPresences: boolean;
76
+ hasGuildMessages: boolean;
77
+ hasMessageContent: boolean;
78
+ };
79
+ /**
80
+ * Check if a specific intent is enabled
81
+ * @param intent The intent to check
82
+ */
83
+ hasIntent(intent: number): boolean;
40
84
  }
41
85
  //# sourceMappingURL=GatewayPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EACN,KAAK,iBAAiB,EAGtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAA0B,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAW9E,qBAAa,aAAc,SAAQ,MAAM;IACxC,QAAQ,CAAC,EAAE,aAAY;IACvB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACtC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAA;IAC7B,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAO;IACrC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,gBAAgB,UAAO;IAC9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,OAAO,CAAC,iBAAiB,CAAI;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;gBAE7B,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA2B7D,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnD,OAAO,CAAC,MAAM,UAAQ,GAAG,IAAI;IAa7B,UAAU,IAAI,IAAI;IAOzB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAOjD,SAAS,CAAC,cAAc,IAAI,IAAI;IAkIhC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE;QAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;KACvB,GAAG,IAAI;IAmER,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAIxC,SAAS,CAAC,eAAe,IAAI,IAAI;IAIjC,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,MAAM,IAAI,IAAI;IAWjB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAO1C,SAAS,CAAC,QAAQ,IAAI,IAAI;CAc1B"}
1
+ {"version":3,"file":"GatewayPlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,SAAS,MAAM,IAAI,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EACN,KAAK,iBAAiB,EAItB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EAEjB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,MAAM,YAAY,CAAA;AAEnB,OAAO,EAA0B,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAS9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMvD,qBAAa,aAAc,SAAQ,MAAM;IACxC,QAAQ,CAAC,EAAE,aAAY;IACvB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACtC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAA;IAC7B,SAAS,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAO;IACrC,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAA;IACpC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAA;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,gBAAgB,UAAO;IAC9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAA;IAC/B,OAAO,CAAC,iBAAiB,CAAI;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAClC,WAAW,UAAQ;IAC1B,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAK;gBAElB,OAAO,EAAE,oBAAoB,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA4B1E,IAAI,IAAI,kBAIP;IAEY,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnD,OAAO,CAAC,MAAM,UAAQ,GAAG,IAAI;IAa7B,UAAU,IAAI,IAAI;IASzB,SAAS,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAOjD,SAAS,CAAC,cAAc,IAAI,IAAI;IA8IhC,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE;QAC5C,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,kBAAkB,CAAC,EAAE,OAAO,CAAA;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAA;KACvB,GAAG,IAAI;IAoER,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,SAAS,CAAC,sBAAsB,IAAI,IAAI;IAIxC,SAAS,CAAC,eAAe,IAAI,IAAI;IAIjC,SAAS,CAAC,SAAS,IAAI,OAAO;IAI9B,SAAS,CAAC,MAAM,IAAI,IAAI;IAWjB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,UAAQ,GAAG,IAAI;IA2BjE,SAAS,CAAC,QAAQ,IAAI,IAAI;IAe1B;;;OAGG;IACI,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAQrD;;;OAGG;IACI,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IASzD;;;OAGG;IACI,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,IAAI;IAiC/D;;OAEG;IACI,kBAAkB;;;;;IAQzB;;OAEG;IACI,cAAc;;;;;;;;IAerB;;;OAGG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGzC"}
@@ -2,10 +2,11 @@ import { EventEmitter } from "node:events";
2
2
  import WebSocket from "ws";
3
3
  import { Plugin } from "../../abstracts/Plugin.js";
4
4
  import { ListenerEvent } from "../../types/index.js";
5
- import { GatewayCloseCodes, GatewayOpcodes } from "./types.js";
5
+ import { GatewayCloseCodes, GatewayIntents, GatewayOpcodes } from "./types.js";
6
6
  import { startHeartbeat, stopHeartbeat } from "./utils/heartbeat.js";
7
7
  import { ConnectionMonitor } from "./utils/monitor.js";
8
- import { createIdentifyPayload, createResumePayload, validatePayload } from "./utils/payload.js";
8
+ import { createIdentifyPayload, createRequestGuildMembersPayload, createResumePayload, createUpdatePresencePayload, createUpdateVoiceStatePayload, validatePayload } from "./utils/payload.js";
9
+ import { GatewayRateLimit } from "./utils/rateLimit.js";
9
10
  export class GatewayPlugin extends Plugin {
10
11
  id = "gateway";
11
12
  client;
@@ -13,6 +14,7 @@ export class GatewayPlugin extends Plugin {
13
14
  state;
14
15
  ws = null;
15
16
  monitor;
17
+ rateLimit;
16
18
  heartbeatInterval;
17
19
  sequence = null;
18
20
  lastHeartbeatAck = true;
@@ -21,6 +23,8 @@ export class GatewayPlugin extends Plugin {
21
23
  shardId;
22
24
  totalShards;
23
25
  gatewayInfo;
26
+ isConnected = false;
27
+ pings = [];
24
28
  constructor(options, gatewayInfo) {
25
29
  super();
26
30
  this.config = {
@@ -37,11 +41,17 @@ export class GatewayPlugin extends Plugin {
37
41
  resumeGatewayUrl: null
38
42
  };
39
43
  this.monitor = new ConnectionMonitor();
44
+ this.rateLimit = new GatewayRateLimit();
40
45
  this.emitter = new EventEmitter();
41
46
  this.gatewayInfo = gatewayInfo;
42
47
  this.monitor.on("metrics", (metrics) => this.emitter.emit("metrics", metrics));
43
48
  this.monitor.on("warning", (warning) => this.emitter.emit("warning", warning));
44
49
  }
50
+ get ping() {
51
+ return this.pings.length
52
+ ? this.pings.reduce((a, b) => a + b, 0) / this.pings.length
53
+ : null;
54
+ }
45
55
  async registerClient(client) {
46
56
  this.client = client;
47
57
  if (!this.gatewayInfo) {
@@ -79,6 +89,8 @@ export class GatewayPlugin extends Plugin {
79
89
  this.monitor.resetUptime();
80
90
  this.ws?.close();
81
91
  this.ws = null;
92
+ this.isConnected = false;
93
+ this.pings = [];
82
94
  }
83
95
  createWebSocket(url) {
84
96
  if (!url) {
@@ -125,12 +137,23 @@ export class GatewayPlugin extends Plugin {
125
137
  else {
126
138
  this.identify();
127
139
  }
140
+ this.isConnected = true;
128
141
  break;
129
142
  }
130
- case GatewayOpcodes.HeartbeatAck:
143
+ case GatewayOpcodes.HeartbeatAck: {
131
144
  this.lastHeartbeatAck = true;
132
145
  this.monitor.recordHeartbeatAck();
146
+ // Record the latency for ping averaging
147
+ const latency = this.monitor.getMetrics().latency;
148
+ if (latency > 0) {
149
+ this.pings.push(latency);
150
+ // Keep only the last 10 pings to prevent unbounded growth
151
+ if (this.pings.length > 10) {
152
+ this.pings.shift();
153
+ }
154
+ }
133
155
  break;
156
+ }
134
157
  case GatewayOpcodes.Dispatch: {
135
158
  const payload1 = payload;
136
159
  const t1 = payload1.t;
@@ -166,6 +189,7 @@ export class GatewayPlugin extends Plugin {
166
189
  this.state.resumeGatewayUrl = null;
167
190
  this.state.sequence = null;
168
191
  this.sequence = null;
192
+ this.pings = [];
169
193
  this.connect(false);
170
194
  }
171
195
  }, 5000);
@@ -182,7 +206,7 @@ export class GatewayPlugin extends Plugin {
182
206
  break;
183
207
  }
184
208
  });
185
- this.ws.on("close", (code) => {
209
+ this.ws.on("close", (code, _reason) => {
186
210
  this.emitter.emit("debug", `WebSocket connection closed with code ${code}`);
187
211
  this.monitor.recordReconnect();
188
212
  if (closed)
@@ -221,6 +245,7 @@ export class GatewayPlugin extends Plugin {
221
245
  this.state.resumeGatewayUrl = null;
222
246
  this.state.sequence = null;
223
247
  this.sequence = null;
248
+ this.pings = [];
224
249
  options.forceNoResume = true;
225
250
  break;
226
251
  }
@@ -255,12 +280,25 @@ export class GatewayPlugin extends Plugin {
255
280
  sessionId: this.state.sessionId,
256
281
  sequence: this.state.sequence
257
282
  });
258
- this.send(payload);
283
+ this.send(payload, true);
259
284
  }
260
- send(payload) {
285
+ send(payload, skipRateLimit = false) {
261
286
  if (this.ws && this.ws.readyState === 1) {
287
+ // Skip rate limiting for essential connection events
288
+ const isEssentialEvent = payload.op === GatewayOpcodes.Heartbeat ||
289
+ payload.op === GatewayOpcodes.Identify ||
290
+ payload.op === GatewayOpcodes.Resume;
291
+ if (!skipRateLimit && !isEssentialEvent && !this.rateLimit.canSend()) {
292
+ throw new Error(`Gateway rate limit exceeded. ${this.rateLimit.getRemainingEvents()} events remaining. Reset in ${this.rateLimit.getResetTime()}ms`);
293
+ }
262
294
  this.ws.send(JSON.stringify(payload));
263
295
  this.monitor.recordMessageSent();
296
+ if (!isEssentialEvent) {
297
+ this.rateLimit.recordEvent();
298
+ }
299
+ if (payload.op === GatewayOpcodes.Heartbeat) {
300
+ this.monitor.recordHeartbeat();
301
+ }
264
302
  }
265
303
  }
266
304
  identify() {
@@ -276,7 +314,83 @@ export class GatewayPlugin extends Plugin {
276
314
  },
277
315
  ...(this.config.shard ? { shard: this.config.shard } : {})
278
316
  });
317
+ this.send(payload, true);
318
+ }
319
+ /**
320
+ * Update the bot's presence (status, activity, etc.)
321
+ * @param data Presence data to update
322
+ */
323
+ updatePresence(data) {
324
+ if (!this.isConnected) {
325
+ throw new Error("Gateway is not connected");
326
+ }
327
+ const payload = createUpdatePresencePayload(data);
328
+ this.send(payload);
329
+ }
330
+ /**
331
+ * Update the bot's voice state
332
+ * @param data Voice state data to update
333
+ */
334
+ updateVoiceState(data) {
335
+ if (!this.isConnected) {
336
+ throw new Error("Gateway is not connected");
337
+ }
338
+ const payload = createUpdateVoiceStatePayload(data);
279
339
  this.send(payload);
280
340
  }
341
+ /**
342
+ * Request guild members from Discord. The data will come in through the GUILD_MEMBERS_CHUNK event, not as a return on this function.
343
+ * @param data Guild members request data
344
+ */
345
+ requestGuildMembers(data) {
346
+ if (!this.isConnected) {
347
+ throw new Error("Gateway is not connected");
348
+ }
349
+ const hasGuildMembersIntent = (this.config.intents & GatewayIntents.GuildMembers) !== 0;
350
+ if (!hasGuildMembersIntent) {
351
+ throw new Error("GUILD_MEMBERS intent is required for requestGuildMembers operation");
352
+ }
353
+ if (data.presences) {
354
+ const hasPresencesIntent = (this.config.intents & GatewayIntents.GuildPresences) !== 0;
355
+ if (!hasPresencesIntent) {
356
+ throw new Error("GUILD_PRESENCES intent is required when requesting presences");
357
+ }
358
+ }
359
+ if (!data.query && data.query !== "" && !data.user_ids) {
360
+ throw new Error("Either 'query' or 'user_ids' field is required for requestGuildMembers");
361
+ }
362
+ const payload = createRequestGuildMembersPayload(data);
363
+ this.send(payload);
364
+ }
365
+ /**
366
+ * Get the current rate limit status
367
+ */
368
+ getRateLimitStatus() {
369
+ return {
370
+ remainingEvents: this.rateLimit.getRemainingEvents(),
371
+ resetTime: this.rateLimit.getResetTime(),
372
+ currentEventCount: this.rateLimit.getCurrentEventCount()
373
+ };
374
+ }
375
+ /**
376
+ * Get information about configured intents
377
+ */
378
+ getIntentsInfo() {
379
+ return {
380
+ intents: this.config.intents,
381
+ hasGuilds: (this.config.intents & GatewayIntents.Guilds) !== 0,
382
+ hasGuildMembers: (this.config.intents & GatewayIntents.GuildMembers) !== 0,
383
+ hasGuildPresences: (this.config.intents & GatewayIntents.GuildPresences) !== 0,
384
+ hasGuildMessages: (this.config.intents & GatewayIntents.GuildMessages) !== 0,
385
+ hasMessageContent: (this.config.intents & GatewayIntents.MessageContent) !== 0
386
+ };
387
+ }
388
+ /**
389
+ * Check if a specific intent is enabled
390
+ * @param intent The intent to check
391
+ */
392
+ hasIntent(intent) {
393
+ return (this.config.intents & intent) !== 0;
394
+ }
281
395
  }
282
396
  //# sourceMappingURL=GatewayPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GatewayPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway/GatewayPlugin.ts"],"names":[],"mappings":"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"}