@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,5 +1,7 @@
1
1
  import { DiscordError } from "../errors/DiscordError.js";
2
2
  import { RateLimitError } from "../errors/RatelimitError.js";
3
+ import { serializeRequestBody } from "../internals/RequestBody.js";
4
+ import { normalizeRequestSchedulerOptions, RequestScheduler } from "../internals/RequestScheduler.js";
3
5
  const defaultOptions = {
4
6
  tokenHeader: "Bot",
5
7
  baseUrl: "https://discord.com/api",
@@ -7,7 +9,8 @@ const defaultOptions = {
7
9
  userAgent: "DiscordBot (https://github.com/buape/carbon, v0.0.0)",
8
10
  timeout: 15000,
9
11
  queueRequests: true,
10
- maxQueueSize: 1000
12
+ maxQueueSize: 1000,
13
+ runtimeProfile: "serverless"
11
14
  };
12
15
  /**
13
16
  * This is the main class that handles making requests to the Discord API.
@@ -18,19 +21,28 @@ export class RequestClient {
18
21
  * The options used to initialize the client
19
22
  */
20
23
  options;
21
- queue = [];
22
24
  token;
23
- abortController = null;
24
- processingQueue = false;
25
+ customFetch;
26
+ nextRequestId = 0;
27
+ wakeupTimer = null;
28
+ wakeupDueAt = null;
29
+ activeWorkers = 0;
30
+ activeBucketKeys = new Set();
31
+ maxConcurrentWorkers = 1;
32
+ maxRateLimitRetries = 2;
33
+ scheduler;
25
34
  routeBuckets = new Map();
26
35
  bucketStates = new Map();
27
36
  globalRateLimitUntil = 0;
37
+ requestControllers = new Set();
28
38
  constructor(token, options) {
29
39
  this.token = token;
40
+ this.customFetch = options?.fetch;
30
41
  this.options = {
31
42
  ...defaultOptions,
32
43
  ...options
33
44
  };
45
+ this.configureScheduler();
34
46
  }
35
47
  async get(path, query) {
36
48
  return await this.request("GET", path, { query });
@@ -47,55 +59,188 @@ export class RequestClient {
47
59
  async delete(path, data, query) {
48
60
  return await this.request("DELETE", path, { data, query });
49
61
  }
62
+ configureScheduler() {
63
+ const normalized = normalizeRequestSchedulerOptions({
64
+ runtimeProfile: this.options.runtimeProfile ?? "serverless",
65
+ maxQueueSize: this.options.maxQueueSize,
66
+ scheduler: this.options.scheduler
67
+ });
68
+ this.maxConcurrentWorkers = normalized.maxConcurrency;
69
+ this.maxRateLimitRetries = normalized.maxRateLimitRetries;
70
+ this.scheduler = new RequestScheduler({
71
+ lanes: normalized.lanes
72
+ });
73
+ }
50
74
  async request(method, path, { data, query }) {
51
75
  const routeKey = this.getRouteKey(method, path);
52
- if (this.options.queueRequests) {
53
- if (typeof this.options.maxQueueSize === "number" &&
54
- this.options.maxQueueSize > 0 &&
55
- this.queue.length >= this.options.maxQueueSize) {
56
- const stats = this.queue.reduce((acc, item) => {
57
- const count = (acc.counts.get(item.routeKey) ?? 0) + 1;
58
- acc.counts.set(item.routeKey, count);
59
- if (count > acc.topCount) {
60
- acc.topCount = count;
61
- acc.topRoute = item.routeKey;
62
- }
63
- return acc;
64
- }, {
65
- counts: new Map([[routeKey, 1]]),
66
- topRoute: routeKey,
67
- topCount: 1
68
- });
69
- throw new Error(`Request queue is full (${this.queue.length} / ${this.options.maxQueueSize}), you should implement a queuing system in your requests or raise the queue size in Carbon. Top offender: ${stats.topRoute}`);
70
- }
76
+ if (!this.options.queueRequests) {
71
77
  return new Promise((resolve, reject) => {
72
- this.queue.push({
78
+ this.executeRequest({
79
+ id: this.nextRequestId++,
73
80
  method,
74
81
  path,
75
82
  data,
76
83
  query,
77
84
  resolve,
78
85
  reject,
79
- routeKey
86
+ routeKey,
87
+ priority: this.getPriority(method, path),
88
+ enqueuedAt: Date.now(),
89
+ retryCount: 0
90
+ })
91
+ .then(resolve)
92
+ .catch((err) => {
93
+ reject(err);
80
94
  });
81
- this.processQueue();
82
95
  });
83
96
  }
84
97
  return new Promise((resolve, reject) => {
85
- this.executeRequest({
98
+ const priority = this.getPriority(method, path);
99
+ const enqueueError = this.enqueueRequest({
100
+ id: this.nextRequestId++,
86
101
  method,
87
102
  path,
88
103
  data,
89
104
  query,
90
105
  resolve,
91
106
  reject,
92
- routeKey
107
+ routeKey,
108
+ priority,
109
+ enqueuedAt: Date.now(),
110
+ retryCount: 0
111
+ });
112
+ if (enqueueError) {
113
+ reject(enqueueError);
114
+ return;
115
+ }
116
+ this.pumpQueue();
117
+ });
118
+ }
119
+ enqueueRequest(request) {
120
+ return this.scheduler.enqueue(request);
121
+ }
122
+ pumpQueue() {
123
+ if (!this.options.queueRequests)
124
+ return;
125
+ while (this.activeWorkers < this.maxConcurrentWorkers) {
126
+ const next = this.takeNextReadyRequest();
127
+ if (!next)
128
+ return;
129
+ this.activeWorkers += 1;
130
+ const bucketKey = this.getCurrentBucketKey(next.routeKey);
131
+ this.activeBucketKeys.add(bucketKey);
132
+ this.runQueuedRequest(next)
133
+ .catch((error) => {
134
+ console.error("[RequestClient] Queue worker failed", error);
93
135
  })
94
- .then(resolve)
95
- .catch((err) => {
96
- reject(err);
136
+ .finally(() => {
137
+ this.activeBucketKeys.delete(bucketKey);
138
+ this.activeWorkers -= 1;
139
+ this.pumpQueue();
97
140
  });
141
+ }
142
+ }
143
+ async runQueuedRequest(request) {
144
+ try {
145
+ const result = await this.executeRequest(request);
146
+ request.resolve(result);
147
+ }
148
+ catch (error) {
149
+ if (error instanceof RateLimitError &&
150
+ this.options.queueRequests &&
151
+ request.retryCount < this.maxRateLimitRetries) {
152
+ const enqueueError = this.enqueueRequest({
153
+ ...request,
154
+ retryCount: request.retryCount + 1,
155
+ enqueuedAt: Date.now()
156
+ });
157
+ if (enqueueError) {
158
+ request.reject(enqueueError);
159
+ return;
160
+ }
161
+ return;
162
+ }
163
+ if (error instanceof Error) {
164
+ request.reject(error);
165
+ return;
166
+ }
167
+ request.reject(new Error("Unknown error during request", { cause: error }));
168
+ }
169
+ }
170
+ takeNextReadyRequest() {
171
+ const next = this.scheduler.takeNext({
172
+ isRouteReady: (routeKey) => this.getRouteWaitTime(routeKey),
173
+ isBucketActive: (routeKey) => this.activeBucketKeys.has(this.getCurrentBucketKey(routeKey))
98
174
  });
175
+ if (!next.request) {
176
+ if (next.waitMs !== null) {
177
+ this.scheduleWakeup(next.waitMs);
178
+ }
179
+ return null;
180
+ }
181
+ this.clearWakeupTimer();
182
+ return next.request;
183
+ }
184
+ scheduleWakeup(waitMs) {
185
+ if (waitMs <= 0) {
186
+ this.clearWakeupTimer();
187
+ this.pumpQueue();
188
+ return;
189
+ }
190
+ const dueAt = Date.now() + waitMs;
191
+ if (this.wakeupTimer &&
192
+ this.wakeupDueAt !== null &&
193
+ this.wakeupDueAt <= dueAt) {
194
+ return;
195
+ }
196
+ if (this.wakeupTimer) {
197
+ clearTimeout(this.wakeupTimer);
198
+ this.wakeupTimer = null;
199
+ }
200
+ this.wakeupDueAt = dueAt;
201
+ this.wakeupTimer = setTimeout(() => {
202
+ this.wakeupTimer = null;
203
+ this.wakeupDueAt = null;
204
+ this.pumpQueue();
205
+ }, Math.max(0, dueAt - Date.now()));
206
+ }
207
+ clearWakeupTimer() {
208
+ if (!this.wakeupTimer) {
209
+ this.wakeupDueAt = null;
210
+ return;
211
+ }
212
+ clearTimeout(this.wakeupTimer);
213
+ this.wakeupTimer = null;
214
+ this.wakeupDueAt = null;
215
+ }
216
+ getRouteWaitTime(routeKey, now = Date.now()) {
217
+ if (this.globalRateLimitUntil > now) {
218
+ return this.globalRateLimitUntil - now;
219
+ }
220
+ const bucketKey = this.getCurrentBucketKey(routeKey);
221
+ const bucket = this.bucketStates.get(bucketKey);
222
+ if (bucket && bucket.delayUntil > now) {
223
+ return bucket.delayUntil - now;
224
+ }
225
+ return 0;
226
+ }
227
+ getPriority(method, path) {
228
+ const normalizedPath = path.toLowerCase();
229
+ const normalizedMethod = method.toUpperCase();
230
+ if (/^\/interactions\/\d+\/[^/]+\/callback$/.test(normalizedPath)) {
231
+ return "critical";
232
+ }
233
+ if (normalizedPath.startsWith("/webhooks/") &&
234
+ (normalizedMethod === "POST" ||
235
+ normalizedMethod === "PATCH" ||
236
+ normalizedMethod === "DELETE")) {
237
+ return "standard";
238
+ }
239
+ if (normalizedMethod !== "GET" &&
240
+ /\/channels\/\d+\/messages/.test(normalizedPath)) {
241
+ return "standard";
242
+ }
243
+ return "background";
99
244
  }
100
245
  async executeRequest(request) {
101
246
  const { method, path, data, query, routeKey } = request;
@@ -106,100 +251,44 @@ export class RequestClient {
106
251
  .join("&")}`
107
252
  : "";
108
253
  const url = `${this.options.baseUrl}${path}${queryString}`;
254
+ const originalRequest = new Request(url, { method });
109
255
  const headers = this.token === "webhook"
110
256
  ? new Headers()
111
257
  : new Headers({
112
258
  Authorization: `${this.options.tokenHeader} ${this.token}`
113
259
  });
114
- // Add custom headers if provided
115
260
  if (data?.headers) {
116
261
  for (const [key, value] of Object.entries(data.headers)) {
117
262
  headers.set(key, value);
118
263
  }
119
264
  }
120
- this.abortController = new AbortController();
265
+ const abortController = new AbortController();
266
+ this.requestControllers.add(abortController);
121
267
  const timeoutMs = typeof this.options.timeout === "number" && this.options.timeout > 0
122
268
  ? this.options.timeout
123
269
  : undefined;
124
- let body;
125
- if (data?.body &&
126
- typeof data.body === "object" &&
127
- ("files" in data.body ||
128
- ("data" in data.body &&
129
- data.body.data &&
130
- typeof data.body.data === "object" &&
131
- "files" in data.body.data))) {
132
- const payload = data.body;
133
- if (typeof payload === "string") {
134
- data.body = { content: payload, attachments: [] };
135
- }
136
- else {
137
- data.body = { ...payload, attachments: [] };
138
- }
139
- const formData = new FormData();
140
- const files = (() => {
141
- if (typeof payload === "object" && payload !== null) {
142
- if ("files" in payload) {
143
- return payload.files || [];
144
- }
145
- if ("data" in payload &&
146
- typeof payload.data === "object" &&
147
- payload.data !== null) {
148
- return (payload.data
149
- .files || []);
150
- }
151
- }
152
- return [];
153
- })();
154
- for (const [index, file] of files.entries()) {
155
- let { data: fileData } = file;
156
- if (!(fileData instanceof Blob)) {
157
- fileData = new Blob([fileData]);
158
- }
159
- formData.append(`files[${index}]`, fileData, file.name);
160
- data.body.attachments.push({
161
- id: index,
162
- filename: file.name,
163
- description: file.description
164
- });
165
- }
166
- if (data.body != null) {
167
- const cleanedBody = {
168
- ...data.body,
169
- files: undefined
170
- };
171
- formData.append("payload_json", JSON.stringify(cleanedBody));
172
- }
173
- body = formData;
174
- }
175
- else if (data?.body != null) {
176
- headers.set("Content-Type", "application/json");
177
- if (data.rawBody) {
178
- body = data.body;
179
- }
180
- else {
181
- body = JSON.stringify(data.body);
182
- }
183
- }
270
+ const body = serializeRequestBody(data, headers);
184
271
  let timeoutId;
185
272
  if (timeoutMs !== undefined) {
186
273
  timeoutId = setTimeout(() => {
187
- this.abortController?.abort();
274
+ abortController.abort();
188
275
  }, timeoutMs);
189
276
  }
190
277
  let response;
278
+ const fetchFn = this.customFetch ?? fetch;
191
279
  try {
192
- response = await fetch(url, {
280
+ response = await fetchFn(url, {
193
281
  method,
194
282
  headers,
195
283
  body,
196
- signal: this.abortController.signal
284
+ signal: abortController.signal
197
285
  });
198
286
  }
199
287
  finally {
200
288
  if (timeoutId) {
201
289
  clearTimeout(timeoutId);
202
290
  }
291
+ this.requestControllers.delete(abortController);
203
292
  }
204
293
  let rawBody = "";
205
294
  let parsedBody;
@@ -237,7 +326,7 @@ export class RequestClient {
237
326
  })(),
238
327
  global: response.headers.get("X-RateLimit-Scope") === "global"
239
328
  };
240
- const rateLimitError = new RateLimitError(response, rateLimitBody);
329
+ const rateLimitError = new RateLimitError(response, rateLimitBody, originalRequest);
241
330
  this.scheduleRateLimit(routeKey, path, rateLimitError);
242
331
  throw rateLimitError;
243
332
  }
@@ -257,39 +346,6 @@ export class RequestClient {
257
346
  return rawBody;
258
347
  return null;
259
348
  }
260
- async processQueue() {
261
- if (this.processingQueue)
262
- return;
263
- this.processingQueue = true;
264
- while (this.queue.length > 0) {
265
- const queueItem = this.queue.shift();
266
- if (!queueItem)
267
- continue;
268
- const { resolve, reject } = queueItem;
269
- try {
270
- const result = await this.executeRequest(queueItem);
271
- resolve(result);
272
- }
273
- catch (error) {
274
- if (error instanceof RateLimitError && this.options.queueRequests) {
275
- this.queue.unshift(queueItem);
276
- }
277
- else if (error instanceof Error) {
278
- reject(error);
279
- }
280
- else {
281
- reject(new Error("Unknown error during request", { cause: error }));
282
- }
283
- }
284
- finally {
285
- this.abortController = null;
286
- }
287
- }
288
- this.processingQueue = false;
289
- if (this.queue.length > 0) {
290
- this.processQueue();
291
- }
292
- }
293
349
  async waitForBucket(routeKey) {
294
350
  while (true) {
295
351
  const now = Date.now();
@@ -309,7 +365,7 @@ export class RequestClient {
309
365
  scheduleRateLimit(routeKey, path, error) {
310
366
  const bucketKey = error.bucket
311
367
  ? this.getBucketKey(routeKey, path, error.bucket)
312
- : (this.routeBuckets.get(routeKey) ?? routeKey);
368
+ : this.getCurrentBucketKey(routeKey);
313
369
  const waitTime = Math.max(0, Math.ceil(error.retryAfter * 1000));
314
370
  const now = Date.now();
315
371
  const bucket = this.bucketStates.get(bucketKey) ?? {
@@ -341,7 +397,7 @@ export class RequestClient {
341
397
  return;
342
398
  const key = bucketId
343
399
  ? this.getBucketKey(routeKey, path, bucketId)
344
- : (this.routeBuckets.get(routeKey) ?? routeKey);
400
+ : this.getCurrentBucketKey(routeKey);
345
401
  if (bucketId)
346
402
  this.routeBuckets.set(routeKey, key);
347
403
  const remaining = remainingRaw ? Number(remainingRaw) : undefined;
@@ -366,6 +422,9 @@ export class RequestClient {
366
422
  bucket.extraBackoff = 0;
367
423
  this.bucketStates.set(key, bucket);
368
424
  }
425
+ getCurrentBucketKey(routeKey) {
426
+ return this.routeBuckets.get(routeKey) ?? routeKey;
427
+ }
369
428
  getBucketKey(routeKey, path, bucketId) {
370
429
  if (!bucketId)
371
430
  return routeKey;
@@ -409,15 +468,27 @@ export class RequestClient {
409
468
  return `${method}:${normalized}`;
410
469
  }
411
470
  clearQueue() {
412
- this.queue = [];
471
+ this.scheduler.clear(new Error("Request queue cleared"));
413
472
  }
414
473
  get queueSize() {
415
- return this.queue.length;
474
+ return this.scheduler.size;
475
+ }
476
+ getSchedulerMetrics() {
477
+ const schedulerMetrics = this.scheduler.getMetrics();
478
+ return {
479
+ queueSize: this.queueSize,
480
+ activeWorkers: this.activeWorkers,
481
+ maxConcurrentWorkers: this.maxConcurrentWorkers,
482
+ ...schedulerMetrics,
483
+ globalRateLimitUntil: this.globalRateLimitUntil,
484
+ activeBuckets: this.activeBucketKeys.size
485
+ };
416
486
  }
417
487
  abortAllRequests() {
418
- if (this.abortController) {
419
- this.abortController.abort();
488
+ for (const controller of this.requestControllers) {
489
+ controller.abort();
420
490
  }
491
+ this.requestControllers.clear();
421
492
  this.clearQueue();
422
493
  }
423
494
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RequestClient.js","sourceRoot":"","sources":["../../../src/classes/RequestClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestClient.js","sourceRoot":"","sources":["../../../src/classes/RequestClient.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,13 @@ export declare class RateLimitError extends DiscordError {
6
6
  retryAfter: number;
7
7
  scope: "global" | "shared" | "user";
8
8
  bucket: string | null;
9
+ request: Request;
10
+ method: string;
11
+ url: string;
9
12
  constructor(response: Response, body: {
10
13
  message: string;
11
14
  retry_after: number;
12
15
  global: boolean;
13
- });
16
+ }, request: Request);
14
17
  }
15
18
  //# sourceMappingURL=RatelimitError.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RatelimitError.d.ts","sourceRoot":"","sources":["../../../src/errors/RatelimitError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;gBAGpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,OAAO,CAAA;KACf;CAYF"}
1
+ {"version":3,"file":"RatelimitError.d.ts","sourceRoot":"","sources":["../../../src/errors/RatelimitError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;gBAGV,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE;QACL,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,MAAM,EAAE,OAAO,CAAA;KACf,EACD,OAAO,EAAE,OAAO;CAejB"}
@@ -6,13 +6,19 @@ export class RateLimitError extends DiscordError {
6
6
  retryAfter;
7
7
  scope;
8
8
  bucket;
9
- constructor(response, body) {
9
+ request;
10
+ method;
11
+ url;
12
+ constructor(response, body, request) {
10
13
  super(response, body);
11
14
  if (this.status !== 429)
12
15
  throw new Error("Invalid status code for RateLimitError");
13
16
  this.retryAfter = body.retry_after;
14
17
  this.scope = response.headers.get("X-RateLimit-Scope");
15
18
  this.bucket = response.headers.get("X-RateLimit-Bucket");
19
+ this.request = request;
20
+ this.method = request.method;
21
+ this.url = request.url;
16
22
  }
17
23
  }
18
24
  //# sourceMappingURL=RatelimitError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RatelimitError.js","sourceRoot":"","sources":["../../../src/errors/RatelimitError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC/C,UAAU,CAAQ;IAClB,KAAK,CAA8B;IACnC,MAAM,CAAe;IAErB,YACC,QAAkB,EAClB,IAIC;QAED,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAG5C,CAAA;QACT,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACzD,CAAC;CACD"}
1
+ {"version":3,"file":"RatelimitError.js","sourceRoot":"","sources":["../../../src/errors/RatelimitError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC/C,UAAU,CAAQ;IAClB,KAAK,CAA8B;IACnC,MAAM,CAAe;IACrB,OAAO,CAAS;IAChB,MAAM,CAAQ;IACd,GAAG,CAAQ;IAEX,YACC,QAAkB,EAClB,IAIC,EACD,OAAgB;QAEhB,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAG5C,CAAA;QACT,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACvB,CAAC;CACD"}
@@ -1,14 +1,6 @@
1
- import { type APIChannel, ChannelType, type ThreadChannelType } from "discord-api-types/v10";
1
+ import { type APIChannel } from "discord-api-types/v10";
2
2
  import type { Client } from "../classes/Client.js";
3
- import { DmChannel } from "../structures/DmChannel.js";
4
- import { GroupDmChannel } from "../structures/GroupDmChannel.js";
5
- import { GuildAnnouncementChannel } from "../structures/GuildAnnouncementChannel.js";
6
- import { GuildCategoryChannel } from "../structures/GuildCategoryChannel.js";
7
- import { GuildForumChannel } from "../structures/GuildForumChannel.js";
8
- import { GuildMediaChannel } from "../structures/GuildMediaChannel.js";
9
- import { GuildStageChannel, GuildVoiceChannel } from "../structures/GuildStageOrVoiceChannel.js";
10
- import { GuildTextChannel } from "../structures/GuildTextChannel.js";
11
- import { GuildThreadChannel } from "../structures/GuildThreadChannel.js";
12
- export type AnyChannel = DmChannel | GroupDmChannel | GuildTextChannel | GuildVoiceChannel | GuildStageChannel | GuildCategoryChannel | GuildAnnouncementChannel | GuildThreadChannel<ThreadChannelType> | GuildForumChannel | GuildMediaChannel;
13
- export declare const channelFactory: (client: Client, channelData: APIChannel) => DmChannel<false> | GroupDmChannel<false> | GuildTextChannel<false> | GuildVoiceChannel<false> | GuildCategoryChannel<false> | GuildAnnouncementChannel<false> | GuildThreadChannel<ChannelType.AnnouncementThread | ChannelType.PublicThread | ChannelType.PrivateThread, false> | GuildStageChannel<false> | GuildForumChannel<false> | GuildMediaChannel | null;
3
+ import type { ChannelTypeMap } from "../types/channels.js";
4
+ export declare function channelFactory<T extends APIChannel>(client: Client, channelData: T): ChannelTypeMap[T["type"]];
5
+ export declare function channelFactory<T extends Pick<APIChannel, "id" | "type">>(client: Client, channelData: T, partial: true): ChannelTypeMap<true>[T["type"]];
14
6
  //# sourceMappingURL=channelFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channelFactory.d.ts","sourceRoot":"","sources":["../../../src/functions/channelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,UAAU,EACf,WAAW,EACX,KAAK,iBAAiB,EACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,EACN,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAA;AAExE,MAAM,MAAM,UAAU,GACnB,SAAS,GACT,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,oBAAoB,GACpB,wBAAwB,GACxB,kBAAkB,CAAC,iBAAiB,CAAC,GACrC,iBAAiB,GACjB,iBAAiB,CAAA;AAEpB,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,aAAa,UAAU,sWA2BrE,CAAA"}
1
+ {"version":3,"file":"channelFactory.d.ts","sourceRoot":"","sources":["../../../src/functions/channelFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,uBAAuB,CAAA;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAalD,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEtE,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EAClD,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,GACZ,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;AAC5B,wBAAgB,cAAc,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,MAAM,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,CAAC,EACd,OAAO,EAAE,IAAI,GACX,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA"}