@buape/carbon 0.14.0 → 0.16.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 (182) hide show
  1. package/LICENSE +1 -1
  2. package/dist/package.json +11 -9
  3. package/dist/src/abstracts/BaseChannel.d.ts +24 -2
  4. package/dist/src/abstracts/BaseChannel.d.ts.map +1 -1
  5. package/dist/src/abstracts/BaseChannel.js +45 -4
  6. package/dist/src/abstracts/BaseChannel.js.map +1 -1
  7. package/dist/src/abstracts/BaseCommand.d.ts +15 -3
  8. package/dist/src/abstracts/BaseCommand.d.ts.map +1 -1
  9. package/dist/src/abstracts/BaseCommand.js +32 -3
  10. package/dist/src/abstracts/BaseCommand.js.map +1 -1
  11. package/dist/src/abstracts/BaseInteraction.d.ts +1 -1
  12. package/dist/src/abstracts/BaseInteraction.d.ts.map +1 -1
  13. package/dist/src/abstracts/BaseInteraction.js +3 -3
  14. package/dist/src/abstracts/BaseInteraction.js.map +1 -1
  15. package/dist/src/abstracts/BaseListener.d.ts +7 -4
  16. package/dist/src/abstracts/BaseListener.d.ts.map +1 -1
  17. package/dist/src/abstracts/BaseListener.js.map +1 -1
  18. package/dist/src/abstracts/Plugin.d.ts +6 -0
  19. package/dist/src/abstracts/Plugin.d.ts.map +1 -1
  20. package/dist/src/abstracts/Plugin.js.map +1 -1
  21. package/dist/src/adapters/bun/index.d.ts +1 -1
  22. package/dist/src/adapters/bun/index.d.ts.map +1 -1
  23. package/dist/src/adapters/bun/index.js +6 -0
  24. package/dist/src/adapters/bun/index.js.map +1 -1
  25. package/dist/src/adapters/fetch/index.d.ts.map +1 -1
  26. package/dist/src/adapters/fetch/index.js +6 -0
  27. package/dist/src/adapters/fetch/index.js.map +1 -1
  28. package/dist/src/classes/Client.d.ts +97 -6
  29. package/dist/src/classes/Client.d.ts.map +1 -1
  30. package/dist/src/classes/Client.js +187 -12
  31. package/dist/src/classes/Client.js.map +1 -1
  32. package/dist/src/classes/EntryPointCommand.d.ts +11 -0
  33. package/dist/src/classes/EntryPointCommand.d.ts.map +1 -0
  34. package/dist/src/classes/EntryPointCommand.js +13 -0
  35. package/dist/src/classes/EntryPointCommand.js.map +1 -0
  36. package/dist/src/classes/Listener.d.ts +83 -81
  37. package/dist/src/classes/Listener.d.ts.map +1 -1
  38. package/dist/src/classes/Listener.js +15 -4
  39. package/dist/src/classes/Listener.js.map +1 -1
  40. package/dist/src/classes/RequestClient.d.ts +92 -17
  41. package/dist/src/classes/RequestClient.d.ts.map +1 -1
  42. package/dist/src/classes/RequestClient.js +207 -136
  43. package/dist/src/classes/RequestClient.js.map +1 -1
  44. package/dist/src/errors/RatelimitError.d.ts +4 -1
  45. package/dist/src/errors/RatelimitError.d.ts.map +1 -1
  46. package/dist/src/errors/RatelimitError.js +7 -1
  47. package/dist/src/errors/RatelimitError.js.map +1 -1
  48. package/dist/src/functions/channelFactory.d.ts +4 -12
  49. package/dist/src/functions/channelFactory.d.ts.map +1 -1
  50. package/dist/src/functions/channelFactory.js +39 -13
  51. package/dist/src/functions/channelFactory.js.map +1 -1
  52. package/dist/src/index.d.ts +1 -0
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +1 -0
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/internals/BoundedExecutor.d.ts +12 -0
  57. package/dist/src/internals/BoundedExecutor.d.ts.map +1 -0
  58. package/dist/src/internals/BoundedExecutor.js +60 -0
  59. package/dist/src/internals/BoundedExecutor.js.map +1 -0
  60. package/dist/src/internals/CommandHandler.d.ts.map +1 -1
  61. package/dist/src/internals/CommandHandler.js +53 -6
  62. package/dist/src/internals/CommandHandler.js.map +1 -1
  63. package/dist/src/internals/ComponentHandler.d.ts +2 -1
  64. package/dist/src/internals/ComponentHandler.d.ts.map +1 -1
  65. package/dist/src/internals/ComponentHandler.js +11 -4
  66. package/dist/src/internals/ComponentHandler.js.map +1 -1
  67. package/dist/src/internals/EventHandler.d.ts +18 -3
  68. package/dist/src/internals/EventHandler.d.ts.map +1 -1
  69. package/dist/src/internals/EventQueue.d.ts +43 -12
  70. package/dist/src/internals/EventQueue.d.ts.map +1 -1
  71. package/dist/src/internals/EventQueue.js +294 -62
  72. package/dist/src/internals/EventQueue.js.map +1 -1
  73. package/dist/src/internals/FieldsHandler.d.ts.map +1 -1
  74. package/dist/src/internals/FieldsHandler.js +10 -1
  75. package/dist/src/internals/FieldsHandler.js.map +1 -1
  76. package/dist/src/internals/RequestBody.d.ts +6 -0
  77. package/dist/src/internals/RequestBody.d.ts.map +1 -0
  78. package/dist/src/internals/RequestBody.js +74 -0
  79. package/dist/src/internals/RequestBody.js.map +1 -0
  80. package/dist/src/internals/RequestScheduler.d.ts +131 -0
  81. package/dist/src/internals/RequestScheduler.d.ts.map +1 -0
  82. package/dist/src/internals/RequestScheduler.js +245 -0
  83. package/dist/src/internals/RequestScheduler.js.map +1 -0
  84. package/dist/src/internals/TemporaryListenerManager.d.ts +3 -3
  85. package/dist/src/internals/TemporaryListenerManager.d.ts.map +1 -1
  86. package/dist/src/internals/TemporaryListenerManager.js +1 -1
  87. package/dist/src/internals/TemporaryListenerManager.js.map +1 -1
  88. package/dist/src/plugins/client-manager/ClientManager.d.ts +30 -2
  89. package/dist/src/plugins/client-manager/ClientManager.d.ts.map +1 -1
  90. package/dist/src/plugins/client-manager/ClientManager.js +86 -16
  91. package/dist/src/plugins/client-manager/ClientManager.js.map +1 -1
  92. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.d.ts +43 -0
  93. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.d.ts.map +1 -0
  94. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.js +210 -0
  95. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayDurableObject.js.map +1 -0
  96. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.d.ts +16 -0
  97. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.d.ts.map +1 -0
  98. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.js +129 -0
  99. package/dist/src/plugins/cloudflare-gateway/CloudflareGatewayPlugin.js.map +1 -0
  100. package/dist/src/plugins/cloudflare-gateway/index.d.ts +4 -0
  101. package/dist/src/plugins/cloudflare-gateway/index.d.ts.map +1 -0
  102. package/dist/src/plugins/cloudflare-gateway/index.js +4 -0
  103. package/dist/src/plugins/cloudflare-gateway/index.js.map +1 -0
  104. package/dist/src/plugins/cloudflare-gateway/types.d.ts +63 -0
  105. package/dist/src/plugins/cloudflare-gateway/types.d.ts.map +1 -0
  106. package/dist/src/plugins/cloudflare-gateway/types.js +2 -0
  107. package/dist/src/plugins/cloudflare-gateway/types.js.map +1 -0
  108. package/dist/src/plugins/gateway/GatewayPlugin.d.ts +108 -19
  109. package/dist/src/plugins/gateway/GatewayPlugin.d.ts.map +1 -1
  110. package/dist/src/plugins/gateway/GatewayPlugin.js +564 -253
  111. package/dist/src/plugins/gateway/GatewayPlugin.js.map +1 -1
  112. package/dist/src/plugins/gateway/types.d.ts +33 -1
  113. package/dist/src/plugins/gateway/types.d.ts.map +1 -1
  114. package/dist/src/plugins/gateway/types.js +21 -0
  115. package/dist/src/plugins/gateway/types.js.map +1 -1
  116. package/dist/src/plugins/gateway/utils/heartbeat.d.ts.map +1 -1
  117. package/dist/src/plugins/gateway/utils/heartbeat.js +10 -4
  118. package/dist/src/plugins/gateway/utils/heartbeat.js.map +1 -1
  119. package/dist/src/plugins/gateway/utils/payload.d.ts.map +1 -1
  120. package/dist/src/plugins/gateway/utils/payload.js +0 -4
  121. package/dist/src/plugins/gateway/utils/payload.js.map +1 -1
  122. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts +56 -3
  123. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.d.ts.map +1 -1
  124. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js +224 -21
  125. package/dist/src/plugins/gateway-forwarder/GatewayForwarderPlugin.js.map +1 -1
  126. package/dist/src/plugins/paginator/index.d.ts +1 -1
  127. package/dist/src/plugins/paginator/index.d.ts.map +1 -1
  128. package/dist/src/plugins/paginator/index.js +1 -1
  129. package/dist/src/plugins/paginator/index.js.map +1 -1
  130. package/dist/src/plugins/voice/VoicePlugin.d.ts.map +1 -1
  131. package/dist/src/plugins/voice/VoicePlugin.js +5 -1
  132. package/dist/src/plugins/voice/VoicePlugin.js.map +1 -1
  133. package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts +10 -0
  134. package/dist/src/plugins/voice/VoiceServerUpdateListener.d.ts.map +1 -0
  135. package/dist/src/plugins/voice/VoiceServerUpdateListener.js +16 -0
  136. package/dist/src/plugins/voice/VoiceServerUpdateListener.js.map +1 -0
  137. package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts +10 -0
  138. package/dist/src/plugins/voice/VoiceStateUpdateListener.d.ts.map +1 -0
  139. package/dist/src/plugins/voice/VoiceStateUpdateListener.js +21 -0
  140. package/dist/src/plugins/voice/VoiceStateUpdateListener.js.map +1 -0
  141. package/dist/src/structures/GroupDmChannel.d.ts +5 -1
  142. package/dist/src/structures/GroupDmChannel.d.ts.map +1 -1
  143. package/dist/src/structures/GroupDmChannel.js +10 -1
  144. package/dist/src/structures/GroupDmChannel.js.map +1 -1
  145. package/dist/src/structures/Guild.d.ts +13 -4
  146. package/dist/src/structures/Guild.d.ts.map +1 -1
  147. package/dist/src/structures/Guild.js +9 -1
  148. package/dist/src/structures/Guild.js.map +1 -1
  149. package/dist/src/structures/GuildMediaChannel.d.ts +1 -1
  150. package/dist/src/structures/GuildMediaChannel.d.ts.map +1 -1
  151. package/dist/src/structures/GuildMediaChannel.js.map +1 -1
  152. package/dist/src/structures/Message.d.ts +1 -1
  153. package/dist/src/structures/Poll.d.ts +1 -1
  154. package/dist/src/structures/Poll.d.ts.map +1 -1
  155. package/dist/src/structures/Webhook.d.ts +4 -2
  156. package/dist/src/structures/Webhook.d.ts.map +1 -1
  157. package/dist/src/structures/Webhook.js +42 -29
  158. package/dist/src/structures/Webhook.js.map +1 -1
  159. package/dist/src/types/channels.d.ts +33 -0
  160. package/dist/src/types/channels.d.ts.map +1 -0
  161. package/dist/src/types/channels.js +2 -0
  162. package/dist/src/types/channels.js.map +1 -0
  163. package/dist/src/types/commandMiddleware.d.ts +64 -0
  164. package/dist/src/types/commandMiddleware.d.ts.map +1 -0
  165. package/dist/src/types/commandMiddleware.js +2 -0
  166. package/dist/src/types/commandMiddleware.js.map +1 -0
  167. package/dist/src/types/index.d.ts +10 -5
  168. package/dist/src/types/index.d.ts.map +1 -1
  169. package/dist/src/types/index.js +2 -0
  170. package/dist/src/types/index.js.map +1 -1
  171. package/dist/src/types/listeners.d.ts +13 -4
  172. package/dist/src/types/listeners.d.ts.map +1 -1
  173. package/dist/src/types/listeners.js.map +1 -1
  174. package/dist/src/utils/payload.d.ts.map +1 -1
  175. package/dist/src/utils/payload.js +16 -0
  176. package/dist/src/utils/payload.js.map +1 -1
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/package.json +11 -9
  179. package/dist/src/adapters/node/index.d.ts +0 -13
  180. package/dist/src/adapters/node/index.d.ts.map +0 -1
  181. package/dist/src/adapters/node/index.js +0 -17
  182. package/dist/src/adapters/node/index.js.map +0 -1
@@ -1,16 +1,73 @@
1
1
  import { createPrivateKey, sign } from "node:crypto";
2
2
  import { ApplicationWebhookType } from "discord-api-types/v10";
3
+ import { createBoundedExecutor } from "../../internals/BoundedExecutor.js";
3
4
  import { concatUint8Arrays, valueToUint8Array } from "../../utils/index.js";
4
5
  import { GatewayPlugin } from "../gateway/GatewayPlugin.js";
6
+ const deliveryDefaults = {
7
+ serverless: {
8
+ timeoutMs: 2500,
9
+ maxRetries: 2,
10
+ baseBackoffMs: 150,
11
+ maxBackoffMs: 1800,
12
+ jitterRatio: 0.2,
13
+ maxInFlight: 8,
14
+ maxQueueSize: 2000,
15
+ retryStatusCodes: [408, 409, 425, 429, 500, 502, 503, 504]
16
+ },
17
+ persistent: {
18
+ timeoutMs: 6000,
19
+ maxRetries: 3,
20
+ baseBackoffMs: 250,
21
+ maxBackoffMs: 4000,
22
+ jitterRatio: 0.2,
23
+ maxInFlight: 16,
24
+ maxQueueSize: 8000,
25
+ retryStatusCodes: [408, 409, 425, 429, 500, 502, 503, 504]
26
+ }
27
+ };
5
28
  export class GatewayForwarderPlugin extends GatewayPlugin {
6
29
  id = "gateway-forwarder";
7
30
  options;
8
31
  privateKey;
32
+ guildAvailabilityCache = new Map();
33
+ deliveryPolicy;
34
+ deliveryExecutor;
35
+ forwardFetch;
36
+ deliveryMetrics = {
37
+ accepted: 0,
38
+ sent: 0,
39
+ retried: 0,
40
+ failed: 0,
41
+ dropped: 0,
42
+ timeouts: 0,
43
+ lastFailureReason: null,
44
+ lastFailureEventType: null,
45
+ lastFailureAt: 0,
46
+ lastSuccessAt: 0,
47
+ oldestQueuedAgeMs: 0
48
+ };
49
+ failureReasons = new Map();
9
50
  constructor(options) {
10
51
  if (!options.privateKey) {
11
52
  throw new Error("privateKey is required for GatewayForwarderPlugin");
12
53
  }
13
54
  super(options);
55
+ const profile = options.runtimeProfile ?? "serverless";
56
+ const defaults = deliveryDefaults[profile];
57
+ this.deliveryPolicy = {
58
+ ...defaults,
59
+ ...options.delivery,
60
+ retryStatusCodes: options.delivery?.retryStatusCodes ?? defaults.retryStatusCodes
61
+ };
62
+ assertPositiveInteger("delivery.maxInFlight", this.deliveryPolicy.maxInFlight);
63
+ this.forwardFetch = options.fetch;
64
+ this.deliveryExecutor = createBoundedExecutor({
65
+ concurrency: this.deliveryPolicy.maxInFlight,
66
+ run: async (task) => {
67
+ await this.deliver(task);
68
+ },
69
+ getQueuedAt: (task) => task.enqueuedAt
70
+ });
14
71
  try {
15
72
  const keyString = options.privateKey.replace(/\\n/g, "\n");
16
73
  this.privateKey = createPrivateKey({
@@ -28,47 +85,72 @@ export class GatewayForwarderPlugin extends GatewayPlugin {
28
85
  super.setupWebSocket();
29
86
  if (!this.ws)
30
87
  return;
31
- this.ws.on("message", async (data) => {
88
+ this.onSocketEvent(this.ws, "message", async (incoming) => {
32
89
  try {
33
- const payload = JSON.parse(data.toString());
90
+ const payloadText = this.getMessageText(incoming);
91
+ if (!payloadText) {
92
+ return;
93
+ }
94
+ const payload = JSON.parse(payloadText);
34
95
  if (payload.t && payload.d) {
96
+ const gatewayType = payload.t;
97
+ let forwardedType = gatewayType;
98
+ if (gatewayType === "READY") {
99
+ const readyData = payload.d;
100
+ this.guildAvailabilityCache.clear();
101
+ readyData.guilds?.forEach((guild) => {
102
+ this.guildAvailabilityCache.set(guild.id, false);
103
+ });
104
+ }
105
+ if (gatewayType === "GUILD_CREATE") {
106
+ const guildCreateData = payload.d;
107
+ const cachedAvailability = this.guildAvailabilityCache.get(guildCreateData.id);
108
+ if (cachedAvailability === false) {
109
+ forwardedType = "GUILD_AVAILABLE";
110
+ }
111
+ this.guildAvailabilityCache.set(guildCreateData.id, true);
112
+ }
113
+ if (gatewayType === "GUILD_DELETE") {
114
+ const guildDeleteData = payload.d;
115
+ if (guildDeleteData.unavailable) {
116
+ forwardedType = "GUILD_UNAVAILABLE";
117
+ this.guildAvailabilityCache.set(guildDeleteData.id, false);
118
+ }
119
+ else {
120
+ this.guildAvailabilityCache.delete(guildDeleteData.id);
121
+ }
122
+ }
35
123
  if (this.options.eventFilter &&
36
- !this.options.eventFilter(payload.t))
124
+ !this.options.eventFilter(forwardedType)) {
37
125
  return;
38
- // In the below code, the events are not truly webhook events,
39
- // but we use the webhook event type so that the payloads are structured correctly to work as if they were webhook events
126
+ }
40
127
  const timestamp = Date.now();
128
+ const timestampString = timestamp.toString();
41
129
  const webhookEvent = {
42
130
  version: 1,
43
131
  application_id: this.client?.options.clientId || "unknown",
44
132
  type: ApplicationWebhookType.Event,
45
133
  event: {
46
- type: payload.t,
134
+ type: forwardedType,
47
135
  timestamp: new Date().toISOString(),
48
136
  data: payload.d
49
137
  }
50
138
  };
51
139
  const body = JSON.stringify(webhookEvent);
52
- const timestampData = valueToUint8Array(timestamp.toString());
140
+ const timestampData = valueToUint8Array(timestampString);
53
141
  const bodyData = valueToUint8Array(body);
54
142
  const message = concatUint8Arrays(timestampData, bodyData);
55
143
  const signature = sign(null, message, this.privateKey);
56
144
  const signatureHex = signature.toString("hex");
57
- const headers = new Headers(this.options.webhookHeaders);
58
- const response = await fetch(this.options.webhookUrl, {
59
- method: "POST",
60
- headers: {
61
- ...headers,
62
- "Content-Type": "application/json",
63
- "X-Signature-Ed25519": signatureHex,
64
- "X-Signature-Timestamp": timestamp.toString()
65
- },
66
- body
145
+ this.enqueueDelivery({
146
+ eventType: forwardedType,
147
+ body,
148
+ signatureHex,
149
+ timestamp: timestampString,
150
+ eventId: `${forwardedType}:${timestampString}:${Math.random().toString(16).slice(2)}`,
151
+ attempt: 0,
152
+ enqueuedAt: Date.now()
67
153
  });
68
- await response.text().catch(() => { });
69
- if (!response.ok) {
70
- console.error(`Failed to forward event ${payload.t}: ${response.status} ${response.statusText}`);
71
- }
72
154
  }
73
155
  }
74
156
  catch (error) {
@@ -76,5 +158,126 @@ export class GatewayForwarderPlugin extends GatewayPlugin {
76
158
  }
77
159
  });
78
160
  }
161
+ getDeliveryMetrics() {
162
+ this.deliveryMetrics.oldestQueuedAgeMs =
163
+ this.deliveryExecutor.getOldestQueuedAgeMs();
164
+ return {
165
+ ...this.deliveryMetrics,
166
+ queueDepth: this.deliveryExecutor.getQueueDepth(),
167
+ inFlight: this.deliveryExecutor.getInFlight(),
168
+ policy: this.deliveryPolicy,
169
+ failureReasons: Object.fromEntries(this.failureReasons)
170
+ };
171
+ }
172
+ enqueueDelivery(task) {
173
+ if (this.deliveryExecutor.getQueueDepth() >= this.deliveryPolicy.maxQueueSize) {
174
+ this.deliveryMetrics.dropped += 1;
175
+ this.trackFailure("queue_full", task.eventType);
176
+ return;
177
+ }
178
+ this.deliveryMetrics.accepted += 1;
179
+ this.deliveryExecutor.schedule(task);
180
+ }
181
+ async deliver(task) {
182
+ for (let attempt = task.attempt; attempt <= this.deliveryPolicy.maxRetries; attempt += 1) {
183
+ const response = await this.sendWithTimeout(task, attempt);
184
+ if (response.ok) {
185
+ this.deliveryMetrics.sent += 1;
186
+ this.deliveryMetrics.lastSuccessAt = Date.now();
187
+ return;
188
+ }
189
+ const finalAttempt = attempt >= this.deliveryPolicy.maxRetries;
190
+ if (!response.retryable || finalAttempt) {
191
+ this.deliveryMetrics.failed += 1;
192
+ this.trackFailure(response.reason, task.eventType);
193
+ console.error(JSON.stringify({
194
+ scope: "gateway-forwarder",
195
+ level: "error",
196
+ type: "delivery-failed",
197
+ eventType: task.eventType,
198
+ reason: response.reason,
199
+ attempt: attempt + 1,
200
+ maxAttempts: this.deliveryPolicy.maxRetries + 1
201
+ }));
202
+ return;
203
+ }
204
+ this.deliveryMetrics.retried += 1;
205
+ await sleep(this.getRetryDelay(attempt));
206
+ }
207
+ }
208
+ async sendWithTimeout(task, attempt) {
209
+ const controller = new AbortController();
210
+ const timeout = setTimeout(() => {
211
+ controller.abort("forwarder-timeout");
212
+ }, this.deliveryPolicy.timeoutMs);
213
+ const headers = new Headers(this.options.webhookHeaders);
214
+ headers.set("Content-Type", "application/json");
215
+ headers.set("X-Signature-Ed25519", task.signatureHex);
216
+ headers.set("X-Signature-Timestamp", task.timestamp);
217
+ headers.set("X-Carbon-Forwarder-Event-Id", task.eventId);
218
+ headers.set("X-Carbon-Forwarder-Attempt", String(attempt + 1));
219
+ const forwardFetch = this.forwardFetch ?? fetch;
220
+ try {
221
+ const response = await forwardFetch(this.options.webhookUrl, {
222
+ method: "POST",
223
+ headers,
224
+ body: task.body,
225
+ signal: controller.signal
226
+ });
227
+ await response.text().catch(() => { });
228
+ if (response.ok) {
229
+ return {
230
+ ok: true,
231
+ retryable: false,
232
+ reason: "ok"
233
+ };
234
+ }
235
+ const reason = `http_${response.status}`;
236
+ return {
237
+ ok: false,
238
+ retryable: this.deliveryPolicy.retryStatusCodes.includes(response.status),
239
+ reason
240
+ };
241
+ }
242
+ catch (error) {
243
+ if (controller.signal.aborted) {
244
+ this.deliveryMetrics.timeouts += 1;
245
+ return {
246
+ ok: false,
247
+ retryable: true,
248
+ reason: "timeout"
249
+ };
250
+ }
251
+ return {
252
+ ok: false,
253
+ retryable: true,
254
+ reason: error instanceof Error
255
+ ? `network:${error.message}`
256
+ : "network:unknown"
257
+ };
258
+ }
259
+ finally {
260
+ clearTimeout(timeout);
261
+ }
262
+ }
263
+ getRetryDelay(attempt) {
264
+ const base = this.deliveryPolicy.baseBackoffMs * 2 ** attempt;
265
+ const bounded = Math.min(base, this.deliveryPolicy.maxBackoffMs);
266
+ const jitter = this.deliveryPolicy.jitterRatio;
267
+ const factor = 1 - jitter + Math.random() * jitter * 2;
268
+ return Math.max(0, Math.floor(bounded * factor));
269
+ }
270
+ trackFailure(reason, eventType) {
271
+ this.deliveryMetrics.lastFailureReason = reason;
272
+ this.deliveryMetrics.lastFailureEventType = eventType;
273
+ this.deliveryMetrics.lastFailureAt = Date.now();
274
+ this.failureReasons.set(reason, (this.failureReasons.get(reason) ?? 0) + 1);
275
+ }
276
+ }
277
+ function assertPositiveInteger(name, value) {
278
+ if (!Number.isInteger(value) || value < 1) {
279
+ throw new Error(`${name} must be an integer greater than or equal to 1`);
280
+ }
79
281
  }
282
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, Math.max(0, ms)));
80
283
  //# sourceMappingURL=GatewayForwarderPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayForwarderPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/GatewayForwarderPlugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GatewayForwarderPlugin.js","sourceRoot":"","sources":["../../../../src/plugins/gateway-forwarder/GatewayForwarderPlugin.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ declare module "../../classes/Client.js" {
5
5
  }
6
6
  import { GoToPageModal } from "./GoToPageModal.js";
7
7
  import { Paginator } from "./Paginator.js";
8
- export { Paginator, GoToPageModal };
9
8
  export * from "./GoToPageModal.js";
10
9
  export * from "./Paginator.js";
10
+ export { GoToPageModal, Paginator };
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/paginator/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yBAAyB,CAAC;IACxC,UAAU,MAAM;QACf,UAAU,EAAE,SAAS,EAAE,CAAA;KACvB;CACD;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAO1C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/paginator/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yBAAyB,CAAC;IACxC,UAAU,MAAM;QACf,UAAU,EAAE,SAAS,EAAE,CAAA;KACvB;CACD;AAGD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAO1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
@@ -5,7 +5,7 @@ Object.assign(Client.prototype, {
5
5
  Paginator,
6
6
  paginators: []
7
7
  });
8
- export { Paginator, GoToPageModal };
9
8
  export * from "./GoToPageModal.js";
10
9
  export * from "./Paginator.js";
10
+ export { GoToPageModal, Paginator };
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/paginator/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IAC/B,SAAS;IACT,UAAU,EAAE,EAAiB;CAC7B,CAAC,CAAA;AAEF,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/paginator/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;IAC/B,SAAS;IACT,UAAU,EAAE,EAAiB;CAC7B,CAAC,CAAA;AAEF,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/voice/VoicePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAE5B,mCAAmC,EACnC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIxD,qBAAa,WAAY,SAAQ,MAAM;IACtC,QAAQ,CAAC,EAAE,WAAU;IACrB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mCAAmC,CAAC,CACzD;IACV,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAe;IAExB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB1D,UAAU,CAAC,QAAQ,EAAE,MAAM;IAO3B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B;CA0BxE"}
1
+ {"version":3,"file":"VoicePlugin.d.ts","sourceRoot":"","sources":["../../../../src/plugins/voice/VoicePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,4BAA4B,EAE5B,mCAAmC,EACnC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMxD,qBAAa,WAAY,SAAQ,MAAM;IACtC,QAAQ,CAAC,EAAE,WAAU;IACrB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mCAAmC,CAAC,CACzD;IACV,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAe;IAExB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1D,UAAU,CAAC,QAAQ,EAAE,MAAM;IAO3B,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,4BAA4B;CA0BxE"}
@@ -1,5 +1,7 @@
1
1
  import { Plugin } from "../../abstracts/Plugin.js";
2
2
  import { GuildDelete } from "./GuildDeleteListener.js";
3
+ import { VoiceServerUpdate } from "./VoiceServerUpdateListener.js";
4
+ import { VoiceStateUpdate } from "./VoiceStateUpdateListener.js";
3
5
  export class VoicePlugin extends Plugin {
4
6
  id = "voice";
5
7
  client;
@@ -19,7 +21,9 @@ export class VoicePlugin extends Plugin {
19
21
  if (!this.gatewayPlugin && !this.shardingPlugin) {
20
22
  throw new Error("Voice cannot be used without a gateway connection.");
21
23
  }
22
- this.client.listeners.push(new GuildDelete());
24
+ this.client.registerListener(new GuildDelete());
25
+ this.client.registerListener(new VoiceStateUpdate());
26
+ this.client.registerListener(new VoiceServerUpdate());
23
27
  }
24
28
  getGateway(guild_id) {
25
29
  if (this.shardingPlugin) {
@@ -1 +1 @@
1
- {"version":3,"file":"VoicePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/voice/VoicePlugin.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,OAAO,WAAY,SAAQ,MAAM;IAC7B,EAAE,GAAG,OAAO,CAAA;IACX,MAAM,CAAS;IAChB,QAAQ,GAChB,IAAI,GAAG,EAAE,CAAA;IACF,cAAc,CAAiB;IAC/B,aAAa,CAAgB;IAE9B,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAA;QAClE,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAC/B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAgB,SAAS,CAAC,CAAA;QAC/D,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,EAAkB,CAAC,CAAA;IAC9D,CAAC;IAED,UAAU,CAAC,QAAgB;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAA;IAC1B,CAAC;IAED,wBAAwB,CAAC,QAAgB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,CACN,OAA4C,EACF,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACpC,OAAO;gBACN,WAAW,CAAC,OAAuB;oBAClC,IAAI,CAAC;wBACJ,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;wBAC3B,OAAO,IAAI,CAAA;oBACZ,CAAC;oBAAC,MAAM,CAAC;wBACR,OAAO,KAAK,CAAA;oBACb,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,GAAS,EAAE;oBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;aACD,CAAA;QACF,CAAC,CAAA;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"VoicePlugin.js","sourceRoot":"","sources":["../../../../src/plugins/voice/VoicePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhE,MAAM,OAAO,WAAY,SAAQ,MAAM;IAC7B,EAAE,GAAG,OAAO,CAAA;IACX,MAAM,CAAS;IAChB,QAAQ,GAChB,IAAI,GAAG,EAAE,CAAA;IACF,cAAc,CAAiB;IAC/B,aAAa,CAAgB;IAE9B,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAiB,UAAU,CAAC,CAAA;QAClE,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAA;QAC/B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAgB,SAAS,CAAC,CAAA;QAC/D,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;QAC7B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAA;QACpD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,UAAU,CAAC,QAAgB;QAC1B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAA;IAC1B,CAAC;IAED,wBAAwB,CAAC,QAAgB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;QACtE,CAAC;QAED,OAAO,CACN,OAA4C,EACF,EAAE;YAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YACpC,OAAO;gBACN,WAAW,CAAC,OAAuB;oBAClC,IAAI,CAAC;wBACJ,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;wBAC3B,OAAO,IAAI,CAAA;oBACZ,CAAC;oBAAC,MAAM,CAAC;wBACR,OAAO,KAAK,CAAA;oBACb,CAAC;gBACF,CAAC;gBACD,OAAO,EAAE,GAAS,EAAE;oBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAC/B,CAAC;aACD,CAAA;QACF,CAAC,CAAA;IACF,CAAC;CACD"}
@@ -0,0 +1,10 @@
1
+ import type { Client } from "../../classes/Client.js";
2
+ import { VoiceServerUpdateListener } from "../../classes/Listener.js";
3
+ import type { ListenerEventData } from "../../types/index.js";
4
+ /**
5
+ * Forwards VOICE_SERVER_UPDATE events to voice adapters.
6
+ */
7
+ export declare class VoiceServerUpdate extends VoiceServerUpdateListener {
8
+ handle(data: ListenerEventData[this["type"]], client: Client): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=VoiceServerUpdateListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceServerUpdateListener.d.ts","sourceRoot":"","sources":["../../../../src/plugins/voice/VoiceServerUpdateListener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG7D;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,yBAAyB;IACzD,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;CAQlE"}
@@ -0,0 +1,16 @@
1
+ import { VoiceServerUpdateListener } from "../../classes/Listener.js";
2
+ /**
3
+ * Forwards VOICE_SERVER_UPDATE events to voice adapters.
4
+ */
5
+ export class VoiceServerUpdate extends VoiceServerUpdateListener {
6
+ async handle(data, client) {
7
+ const voice = client.getPlugin("voice");
8
+ if (!voice)
9
+ return;
10
+ const guildId = data.guild_id;
11
+ if (guildId) {
12
+ voice.adapters.get(guildId)?.onVoiceServerUpdate(data);
13
+ }
14
+ }
15
+ }
16
+ //# sourceMappingURL=VoiceServerUpdateListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceServerUpdateListener.js","sourceRoot":"","sources":["../../../../src/plugins/voice/VoiceServerUpdateListener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAIrE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,yBAAyB;IAC/D,KAAK,CAAC,MAAM,CAAC,IAAqC,EAAE,MAAc;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAc,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACvD,CAAC;IACF,CAAC;CACD"}
@@ -0,0 +1,10 @@
1
+ import type { Client } from "../../classes/Client.js";
2
+ import { VoiceStateUpdateListener } from "../../classes/Listener.js";
3
+ import type { ListenerEventData } from "../../types/index.js";
4
+ /**
5
+ * Forwards VOICE_STATE_UPDATE events to voice adapters.
6
+ */
7
+ export declare class VoiceStateUpdate extends VoiceStateUpdateListener {
8
+ handle(data: ListenerEventData[this["type"]], client: Client): Promise<void>;
9
+ }
10
+ //# sourceMappingURL=VoiceStateUpdateListener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceStateUpdateListener.d.ts","sourceRoot":"","sources":["../../../../src/plugins/voice/VoiceStateUpdateListener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAG7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,wBAAwB;IACvD,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM;CAalE"}
@@ -0,0 +1,21 @@
1
+ import { VoiceStateUpdateListener } from "../../classes/Listener.js";
2
+ /**
3
+ * Forwards VOICE_STATE_UPDATE events to voice adapters.
4
+ */
5
+ export class VoiceStateUpdate extends VoiceStateUpdateListener {
6
+ async handle(data, client) {
7
+ const voice = client.getPlugin("voice");
8
+ if (!voice)
9
+ return;
10
+ const guildId = data.guild_id;
11
+ if (guildId) {
12
+ // Reconstruct raw payload for @discordjs/voice adapter
13
+ const raw = {
14
+ ...data,
15
+ member: data.rawMember
16
+ };
17
+ voice.adapters.get(guildId)?.onVoiceStateUpdate(raw);
18
+ }
19
+ }
20
+ }
21
+ //# sourceMappingURL=VoiceStateUpdateListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceStateUpdateListener.js","sourceRoot":"","sources":["../../../../src/plugins/voice/VoiceStateUpdateListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAIpE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,wBAAwB;IAC7D,KAAK,CAAC,MAAM,CAAC,IAAqC,EAAE,MAAc;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAc,OAAO,CAAC,CAAA;QACpD,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC7B,IAAI,OAAO,EAAE,CAAC;YACb,uDAAuD;YACvD,MAAM,GAAG,GAAwC;gBAChD,GAAG,IAAI;gBACP,MAAM,EAAE,IAAI,CAAC,SAAS;aACtB,CAAA;YACD,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAA;QACrD,CAAC;IACF,CAAC;CACD"}
@@ -1,6 +1,6 @@
1
1
  import { type ChannelType } from "discord-api-types/v10";
2
2
  import { BaseChannel } from "../abstracts/BaseChannel.js";
3
- import type { IfPartial } from "../types/index.js";
3
+ import type { IfPartial, MessagePayload } from "../types/index.js";
4
4
  import { type CDNUrlOptions } from "../utils/index.js";
5
5
  import { Message } from "./Message.js";
6
6
  import { User } from "./User.js";
@@ -67,6 +67,10 @@ export declare class GroupDmChannel<IsPartial extends boolean = false> extends B
67
67
  * @param name The new name of the channel
68
68
  */
69
69
  setName(name: string): Promise<void>;
70
+ /**
71
+ * Send a message to the channel
72
+ */
73
+ send(message: MessagePayload): Promise<Message<false>>;
70
74
  /**
71
75
  * Trigger a typing indicator in the channel (this will expire after 10 seconds)
72
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GroupDmChannel.d.ts","sourceRoot":"","sources":["../../../src/structures/GroupDmChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,uBAAuB,CAAA;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;GAEG;AACH,qBAAa,cAAc,CAC1B,SAAS,SAAS,OAAO,GAAG,KAAK,CAChC,SAAQ,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;IACpD;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAG9C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAItD;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGvD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAG9C;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAMjD;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IASxE;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGjD;IAED;;;;;OAKG;IACH,IAAI,aAAa,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGvD;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAG3C;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAGtB;IAED;;;;;;;OAOG;IACH,IAAI,WAAW,yBAMd;IAED;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM;IAS1B;;OAEG;IACG,aAAa;CAuBnB"}
1
+ {"version":3,"file":"GroupDmChannel.d.ts","sourceRoot":"","sources":["../../../src/structures/GroupDmChannel.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,WAAW,EAEhB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAEN,KAAK,aAAa,EAElB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC;;GAEG;AACH,qBAAa,cAAc,CAC1B,SAAS,SAAS,OAAO,GAAG,KAAK,CAChC,SAAQ,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC;IACpD;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAG9C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAItD;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGvD;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAG9C;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAMjD;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IASxE;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGjD;IAED;;;;;OAKG;IACH,IAAI,aAAa,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC,CAGvD;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,CAG3C;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAGtB;IAED;;;;;;;OAOG;IACH,IAAI,WAAW,yBAMd;IAED;;;OAGG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM;IAS1B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,cAAc;IAOlC;;OAEG;IACG,aAAa;CAuBnB"}
@@ -1,6 +1,6 @@
1
1
  import { Routes } from "discord-api-types/v10";
2
2
  import { BaseChannel } from "../abstracts/BaseChannel.js";
3
- import { buildCDNUrl } from "../utils/index.js";
3
+ import { buildCDNUrl, serializePayload } from "../utils/index.js";
4
4
  import { Message } from "./Message.js";
5
5
  import { User } from "./User.js";
6
6
  /**
@@ -121,6 +121,15 @@ export class GroupDmChannel extends BaseChannel {
121
121
  });
122
122
  this.setField("name", name);
123
123
  }
124
+ /**
125
+ * Send a message to the channel
126
+ */
127
+ async send(message) {
128
+ const data = (await this.client.rest.post(Routes.channelMessages(this.id), {
129
+ body: serializePayload(message)
130
+ }));
131
+ return new Message(this.client, data);
132
+ }
124
133
  /**
125
134
  * Trigger a typing indicator in the channel (this will expire after 10 seconds)
126
135
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GroupDmChannel.js","sourceRoot":"","sources":["../../../src/structures/GroupDmChannel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GroupDmChannel.js","sourceRoot":"","sources":["../../../src/structures/GroupDmChannel.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { type APIGuild, type APIGuildWelcomeScreen, type APIIncidentsData, type APISticker, type GuildDefaultMessageNotifications, type GuildExplicitContentFilter, type GuildFeature, type GuildHubType, type GuildMFALevel, type GuildNSFWLevel, type GuildPremiumTier, type GuildSystemChannelFlags, type GuildVerificationLevel, type RESTPostAPIGuildRoleJSONBody } from "discord-api-types/v10";
1
+ import { type APIGuild, type APIGuildWelcomeScreen, type APIIncidentsData, type APISticker, type ChannelType, type GuildDefaultMessageNotifications, type GuildExplicitContentFilter, type GuildFeature, type GuildHubType, type GuildMFALevel, type GuildNSFWLevel, type GuildPremiumTier, type GuildSystemChannelFlags, type GuildVerificationLevel, type RESTPostAPIGuildChannelJSONBody, type RESTPostAPIGuildRoleJSONBody } from "discord-api-types/v10";
2
2
  import { Base } from "../abstracts/Base.js";
3
3
  import type { Client } from "../classes/Client.js";
4
- import { channelFactory } from "../functions/channelFactory.js";
4
+ import type { AnyChannel, ChannelTypeMap } from "../types/channels.js";
5
5
  import type { IfPartial } from "../types/index.js";
6
6
  import { type CDNUrlOptions } from "../utils/index.js";
7
7
  import { GuildEmoji } from "./Emoji.js";
@@ -249,6 +249,15 @@ export declare class Guild<IsPartial extends boolean = false> extends Base {
249
249
  * Leave the guild
250
250
  */
251
251
  leave(): Promise<void>;
252
+ /**
253
+ * Create a channel in the guild
254
+ */
255
+ createChannel<T extends Exclude<RESTPostAPIGuildChannelJSONBody["type"], undefined> & keyof ChannelTypeMap>(data: Omit<RESTPostAPIGuildChannelJSONBody, "type"> & {
256
+ type: T;
257
+ }): Promise<ChannelTypeMap[T]>;
258
+ createChannel(data: Omit<RESTPostAPIGuildChannelJSONBody, "type"> & {
259
+ type?: undefined;
260
+ }): Promise<ChannelTypeMap[ChannelType.GuildText]>;
252
261
  /**
253
262
  * Create a role in the guild
254
263
  */
@@ -269,12 +278,12 @@ export declare class Guild<IsPartial extends boolean = false> extends Base {
269
278
  /**
270
279
  * Fetch a channel from the guild by ID
271
280
  */
272
- fetchChannel(channelId: string): Promise<import("./DmChannel.js").DmChannel<false> | import("./GroupDmChannel.js").GroupDmChannel<false> | import("./GuildTextChannel.js").GuildTextChannel<false> | import("./GuildStageOrVoiceChannel.js").GuildVoiceChannel<false> | import("./GuildCategoryChannel.js").GuildCategoryChannel<false> | import("./GuildAnnouncementChannel.js").GuildAnnouncementChannel<false> | import("./GuildThreadChannel.js").GuildThreadChannel<import("discord-api-types/v10").ChannelType.AnnouncementThread | import("discord-api-types/v10").ChannelType.PublicThread | import("discord-api-types/v10").ChannelType.PrivateThread, false> | import("./GuildStageOrVoiceChannel.js").GuildStageChannel<false> | import("./GuildForumChannel.js").GuildForumChannel<false> | import("./GuildMediaChannel.js").GuildMediaChannel | null>;
281
+ fetchChannel(channelId: string): Promise<import("./GuildCategoryChannel.js").GuildCategoryChannel<false> | import("./GuildTextChannel.js").GuildTextChannel<false> | import("./DmChannel.js").DmChannel<false> | import("./GuildStageOrVoiceChannel.js").GuildVoiceChannel<false> | import("./GroupDmChannel.js").GroupDmChannel<false> | import("./GuildAnnouncementChannel.js").GuildAnnouncementChannel<false> | import("./GuildThreadChannel.js").GuildThreadChannel<ChannelType.AnnouncementThread, false> | import("./GuildThreadChannel.js").GuildThreadChannel<ChannelType.PublicThread, false> | import("./GuildThreadChannel.js").GuildThreadChannel<ChannelType.PrivateThread, false> | import("./GuildStageOrVoiceChannel.js").GuildStageChannel<false> | import("./GuildForumChannel.js").GuildForumChannel<false> | import("./GuildMediaChannel.js").GuildMediaChannel<false> | null>;
273
282
  /**
274
283
  * Fetch all channels in the guild
275
284
  * @returns A Promise that resolves to an array of channel objects
276
285
  */
277
- fetchChannels(): Promise<ReturnType<typeof channelFactory>[]>;
286
+ fetchChannels(): Promise<AnyChannel[]>;
278
287
  /**
279
288
  * Fetch a role from the guild by ID
280
289
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Guild.d.ts","sourceRoot":"","sources":["../../../src/structures/Guild.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Guild.d.ts","sourceRoot":"","sources":["../../../src/structures/Guild.ts"],"names":[],"mappings":"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"}