@discordeno/rest 19.0.0-next.40c19da → 19.0.0-next.4287398

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/routes.js ADDED
@@ -0,0 +1,525 @@
1
+ import { isGetMessagesAfter, isGetMessagesAround, isGetMessagesBefore, isGetMessagesLimit } from '@discordeno/utils';
2
+ export function createRoutes() {
3
+ return {
4
+ webhooks: {
5
+ id: (webhookId)=>{
6
+ return `/webhooks/${webhookId}`;
7
+ },
8
+ message: (webhookId, token, messageId, options)=>{
9
+ let url = `/webhooks/${webhookId}/${token}/messages/${messageId}?`;
10
+ if (options) {
11
+ if (options.threadId) url += `thread_id=${options.threadId}`;
12
+ }
13
+ return url;
14
+ },
15
+ original: (webhookId, token, options)=>{
16
+ let url = `/webhooks/${webhookId}/${token}/messages/@original?`;
17
+ if (options) {
18
+ if (options.threadId) url += `thread_id=${options.threadId}`;
19
+ }
20
+ return url;
21
+ },
22
+ webhook: (webhookId, token, options)=>{
23
+ let url = `/webhooks/${webhookId}/${token}?`;
24
+ if (options) {
25
+ if (options?.wait !== undefined) url += `wait=${options.wait.toString()}`;
26
+ if (options.threadId) url += `thread_id=${options.threadId}`;
27
+ }
28
+ return url;
29
+ }
30
+ },
31
+ // Channel Endpoints
32
+ channels: {
33
+ bulk: (channelId)=>{
34
+ return `/channels/${channelId}/messages/bulk-delete`;
35
+ },
36
+ dm: ()=>{
37
+ return '/users/@me/channels';
38
+ },
39
+ dmRecipient: (channelId, userId)=>{
40
+ return `/channels/${channelId}/recipients/${userId}`;
41
+ },
42
+ pin: (channelId, messageId)=>{
43
+ return `/channels/${channelId}/pins/${messageId}`;
44
+ },
45
+ pins: (channelId)=>{
46
+ return `/channels/${channelId}/pins`;
47
+ },
48
+ reactions: {
49
+ bot: (channelId, messageId, emoji)=>{
50
+ return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me`;
51
+ },
52
+ user: (channelId, messageId, emoji, userId)=>{
53
+ return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/${userId}`;
54
+ },
55
+ all: (channelId, messageId)=>{
56
+ return `/channels/${channelId}/messages/${messageId}/reactions`;
57
+ },
58
+ emoji: (channelId, messageId, emoji, options)=>{
59
+ let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
60
+ if (options) {
61
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
62
+ if (options.after) url += `after=${options.after}`;
63
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
64
+ if (options.limit) url += `&limit=${options.limit}`;
65
+ }
66
+ return url;
67
+ },
68
+ message: (channelId, messageId, emoji, options)=>{
69
+ let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
70
+ if (options) {
71
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
72
+ if (options.after) url += `after=${options.after}`;
73
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
74
+ if (options.limit) url += `&limit=${options.limit}`;
75
+ }
76
+ return url;
77
+ }
78
+ },
79
+ webhooks: (channelId)=>{
80
+ return `/channels/${channelId}/webhooks`;
81
+ },
82
+ channel: (channelId)=>{
83
+ return `/channels/${channelId}`;
84
+ },
85
+ follow: (channelId)=>{
86
+ return `/channels/${channelId}/followers`;
87
+ },
88
+ forum: (channelId)=>{
89
+ return `/channels/${channelId}/threads?has_message=true`;
90
+ },
91
+ invites: (channelId)=>{
92
+ return `/channels/${channelId}/invites`;
93
+ },
94
+ message: (channelId, messageId)=>{
95
+ return `/channels/${channelId}/messages/${messageId}`;
96
+ },
97
+ messages: (channelId, options)=>{
98
+ let url = `/channels/${channelId}/messages?`;
99
+ if (options) {
100
+ if (isGetMessagesAfter(options) && options.after) {
101
+ url += `after=${options.after}`;
102
+ }
103
+ if (isGetMessagesBefore(options) && options.before) {
104
+ url += `&before=${options.before}`;
105
+ }
106
+ if (isGetMessagesAround(options) && options.around) {
107
+ url += `&around=${options.around}`;
108
+ }
109
+ if (isGetMessagesLimit(options) && options.limit) {
110
+ url += `&limit=${options.limit}`;
111
+ }
112
+ }
113
+ return url;
114
+ },
115
+ overwrite: (channelId, overwriteId)=>{
116
+ return `/channels/${channelId}/permissions/${overwriteId}`;
117
+ },
118
+ crosspost: (channelId, messageId)=>{
119
+ return `/channels/${channelId}/messages/${messageId}/crosspost`;
120
+ },
121
+ stages: ()=>{
122
+ return '/stage-instances';
123
+ },
124
+ stage: (channelId)=>{
125
+ return `/stage-instances/${channelId}`;
126
+ },
127
+ // Thread Endpoints
128
+ threads: {
129
+ message: (channelId, messageId)=>{
130
+ return `/channels/${channelId}/messages/${messageId}/threads`;
131
+ },
132
+ all: (channelId)=>{
133
+ return `/channels/${channelId}/threads`;
134
+ },
135
+ active: (guildId)=>{
136
+ return `/guilds/${guildId}/threads/active`;
137
+ },
138
+ members: (channelId)=>{
139
+ return `/channels/${channelId}/thread-members`;
140
+ },
141
+ me: (channelId)=>{
142
+ return `/channels/${channelId}/thread-members/@me`;
143
+ },
144
+ user: (channelId, userId)=>{
145
+ return `/channels/${channelId}/thread-members/${userId}`;
146
+ },
147
+ archived: (channelId)=>{
148
+ return `/channels/${channelId}/threads/archived`;
149
+ },
150
+ public: (channelId, options)=>{
151
+ let url = `/channels/${channelId}/threads/archived/public?`;
152
+ if (options) {
153
+ if (options.before) {
154
+ url += `before=${new Date(options.before).toISOString()}`;
155
+ }
156
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
157
+ if (options.limit) url += `&limit=${options.limit}`;
158
+ }
159
+ return url;
160
+ },
161
+ private: (channelId, options)=>{
162
+ let url = `/channels/${channelId}/threads/archived/private?`;
163
+ if (options) {
164
+ if (options.before) {
165
+ url += `before=${new Date(options.before).toISOString()}`;
166
+ }
167
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
168
+ if (options.limit) url += `&limit=${options.limit}`;
169
+ }
170
+ return url;
171
+ },
172
+ joined: (channelId, options)=>{
173
+ let url = `/channels/${channelId}/users/@me/threads/archived/private?`;
174
+ if (options) {
175
+ if (options.before) {
176
+ url += `before=${new Date(options.before).toISOString()}`;
177
+ }
178
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
179
+ if (options.limit) url += `&limit=${options.limit}`;
180
+ }
181
+ return url;
182
+ }
183
+ },
184
+ typing: (channelId)=>{
185
+ return `/channels/${channelId}/typing`;
186
+ }
187
+ },
188
+ // Guild Endpoints
189
+ guilds: {
190
+ all: ()=>{
191
+ return '/guilds';
192
+ },
193
+ userGuilds: (options)=>{
194
+ let url = '/users/@me/guilds?';
195
+ if (options) {
196
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
197
+ if (options.after) url += `after=${options.after}`;
198
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
199
+ if (options.before) url += `&before=${options.before}`;
200
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
201
+ if (options.limit) url += `&limit=${options.limit}`;
202
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
203
+ if (options.withCounts) url += `&with_counts=${options.withCounts}`;
204
+ }
205
+ return url;
206
+ },
207
+ auditlogs: (guildId, options)=>{
208
+ let url = `/guilds/${guildId}/audit-logs?`;
209
+ if (options) {
210
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
211
+ if (options.actionType) url += `action_type=${options.actionType}`;
212
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
213
+ if (options.before) url += `&before=${options.before}`;
214
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
215
+ if (options.after) url += `&after=${options.after}`;
216
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
217
+ if (options.limit) url += `&limit=${options.limit}`;
218
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
219
+ if (options.userId) url += `&user_id=${options.userId}`;
220
+ }
221
+ return url;
222
+ },
223
+ automod: {
224
+ rule: (guildId, ruleId)=>{
225
+ return `/guilds/${guildId}/auto-moderation/rules/${ruleId}`;
226
+ },
227
+ rules: (guildId)=>{
228
+ return `/guilds/${guildId}/auto-moderation/rules`;
229
+ }
230
+ },
231
+ channels: (guildId)=>{
232
+ return `/guilds/${guildId}/channels`;
233
+ },
234
+ emoji: (guildId, emojiId)=>{
235
+ return `/guilds/${guildId}/emojis/${emojiId}`;
236
+ },
237
+ emojis: (guildId)=>{
238
+ return `/guilds/${guildId}/emojis`;
239
+ },
240
+ events: {
241
+ events: (guildId, withUserCount)=>{
242
+ let url = `/guilds/${guildId}/scheduled-events?`;
243
+ if (withUserCount !== undefined) {
244
+ url += `with_user_count=${withUserCount.toString()}`;
245
+ }
246
+ return url;
247
+ },
248
+ event: (guildId, eventId, withUserCount)=>{
249
+ let url = `/guilds/${guildId}/scheduled-events/${eventId}`;
250
+ if (withUserCount !== undefined) {
251
+ url += `with_user_count=${withUserCount.toString()}`;
252
+ }
253
+ return url;
254
+ },
255
+ users: (guildId, eventId, options)=>{
256
+ let url = `/guilds/${guildId}/scheduled-events/${eventId}/users?`;
257
+ if (options) {
258
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
259
+ if (options.limit !== undefined) url += `limit=${options.limit}`;
260
+ if (options.withMember !== undefined) {
261
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
262
+ url += `&with_member=${options.withMember.toString()}`;
263
+ }
264
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
265
+ if (options.after !== undefined) url += `&after=${options.after}`;
266
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
267
+ if (options.before !== undefined) url += `&before=${options.before}`;
268
+ }
269
+ return url;
270
+ }
271
+ },
272
+ guild (guildId, withCounts) {
273
+ let url = `/guilds/${guildId}?`;
274
+ if (withCounts !== undefined) {
275
+ url += `with_counts=${withCounts.toString()}`;
276
+ }
277
+ return url;
278
+ },
279
+ integration (guildId, integrationId) {
280
+ return `/guilds/${guildId}/integrations/${integrationId}`;
281
+ },
282
+ integrations: (guildId)=>{
283
+ return `/guilds/${guildId}/integrations?include_applications=true`;
284
+ },
285
+ invite (inviteCode, options) {
286
+ let url = `/invites/${inviteCode}?`;
287
+ if (options) {
288
+ if (options.withCounts !== undefined) {
289
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
290
+ url += `with_counts=${options.withCounts.toString()}`;
291
+ }
292
+ if (options.withExpiration !== undefined) {
293
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
294
+ url += `&with_expiration=${options.withExpiration.toString()}`;
295
+ }
296
+ if (options.scheduledEventId) {
297
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
298
+ url += `&guild_scheduled_event_id=${options.scheduledEventId}`;
299
+ }
300
+ }
301
+ return url;
302
+ },
303
+ invites: (guildId)=>{
304
+ return `/guilds/${guildId}/invites`;
305
+ },
306
+ leave: (guildId)=>{
307
+ return `/users/@me/guilds/${guildId}`;
308
+ },
309
+ members: {
310
+ ban: (guildId, userId)=>{
311
+ return `/guilds/${guildId}/bans/${userId}`;
312
+ },
313
+ bans: (guildId, options)=>{
314
+ let url = `/guilds/${guildId}/bans?`;
315
+ if (options) {
316
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
317
+ if (options.limit) url += `limit=${options.limit}`;
318
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
319
+ if (options.after) url += `&after=${options.after}`;
320
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
321
+ if (options.before) url += `&before=${options.before}`;
322
+ }
323
+ return url;
324
+ },
325
+ bot: (guildId)=>{
326
+ return `/guilds/${guildId}/members/@me`;
327
+ },
328
+ member: (guildId, userId)=>{
329
+ return `/guilds/${guildId}/members/${userId}`;
330
+ },
331
+ currentMember: (guildId)=>{
332
+ return `/users/@me/guilds/${guildId}/member`;
333
+ },
334
+ members: (guildId, options)=>{
335
+ let url = `/guilds/${guildId}/members?`;
336
+ if (options !== undefined) {
337
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
338
+ if (options.limit) url += `limit=${options.limit}`;
339
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
340
+ if (options.after) url += `&after=${options.after}`;
341
+ }
342
+ return url;
343
+ },
344
+ search: (guildId, query, options)=>{
345
+ let url = `/guilds/${guildId}/members/search?query=${encodeURIComponent(query)}`;
346
+ if (options) {
347
+ if (options.limit !== undefined) url += `&limit=${options.limit}`;
348
+ }
349
+ return url;
350
+ },
351
+ prune: (guildId, options)=>{
352
+ let url = `/guilds/${guildId}/prune?`;
353
+ if (options) {
354
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
355
+ if (options.days) url += `days=${options.days}`;
356
+ if (Array.isArray(options.includeRoles)) {
357
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
358
+ url += `&include_roles=${options.includeRoles.join(',')}`;
359
+ } else if (options.includeRoles) {
360
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
361
+ url += `&include_roles=${options.includeRoles}`;
362
+ }
363
+ }
364
+ return url;
365
+ }
366
+ },
367
+ mfa: (guildId)=>`/guilds/${guildId}/mfa`,
368
+ preview: (guildId)=>{
369
+ return `/guilds/${guildId}/preview`;
370
+ },
371
+ prune: (guildId, options)=>{
372
+ let url = `/guilds/${guildId}/prune?`;
373
+ if (options) {
374
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
375
+ if (options.days) url += `days=${options.days}`;
376
+ if (Array.isArray(options.includeRoles)) {
377
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
378
+ url += `&include_roles=${options.includeRoles.join(',')}`;
379
+ } else if (options.includeRoles) {
380
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
381
+ url += `&include_roles=${options.includeRoles}`;
382
+ }
383
+ }
384
+ return url;
385
+ },
386
+ roles: {
387
+ one: (guildId, roleId)=>{
388
+ return `/guilds/${guildId}/roles/${roleId}`;
389
+ },
390
+ all: (guildId)=>{
391
+ return `/guilds/${guildId}/roles`;
392
+ },
393
+ member: (guildId, memberId, roleId)=>{
394
+ return `/guilds/${guildId}/members/${memberId}/roles/${roleId}`;
395
+ }
396
+ },
397
+ stickers: (guildId)=>{
398
+ return `/guilds/${guildId}/stickers`;
399
+ },
400
+ sticker: (guildId, stickerId)=>{
401
+ return `/guilds/${guildId}/stickers/${stickerId}`;
402
+ },
403
+ voice: (guildId, userId)=>{
404
+ return `/guilds/${guildId}/voice-states/${userId ?? '@me'}`;
405
+ },
406
+ templates: {
407
+ code: (code)=>{
408
+ return `/guilds/templates/${code}`;
409
+ },
410
+ guild: (guildId, code)=>{
411
+ return `/guilds/${guildId}/templates/${code}`;
412
+ },
413
+ all: (guildId)=>{
414
+ return `/guilds/${guildId}/templates`;
415
+ }
416
+ },
417
+ vanity: (guildId)=>{
418
+ return `/guilds/${guildId}/vanity-url`;
419
+ },
420
+ regions: (guildId)=>{
421
+ return `/guilds/${guildId}/regions`;
422
+ },
423
+ webhooks: (guildId)=>{
424
+ return `/guilds/${guildId}/webhooks`;
425
+ },
426
+ welcome: (guildId)=>{
427
+ return `/guilds/${guildId}/welcome-screen`;
428
+ },
429
+ widget: (guildId)=>{
430
+ return `/guilds/${guildId}/widget`;
431
+ },
432
+ widgetJson: (guildId)=>{
433
+ return `/guilds/${guildId}/widget.json`;
434
+ }
435
+ },
436
+ sticker: (stickerId)=>{
437
+ return `/stickers/${stickerId}`;
438
+ },
439
+ regions: ()=>{
440
+ return '/voice/regions';
441
+ },
442
+ // Interaction Endpoints
443
+ interactions: {
444
+ commands: {
445
+ // Application Endpoints
446
+ commands: (applicationId)=>{
447
+ return `/applications/${applicationId}/commands`;
448
+ },
449
+ guilds: {
450
+ all (applicationId, guildId) {
451
+ return `/applications/${applicationId}/guilds/${guildId}/commands`;
452
+ },
453
+ one (applicationId, guildId, commandId, withLocalizations) {
454
+ let url = `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}?`;
455
+ if (withLocalizations !== undefined) {
456
+ url += `with_localizations=${withLocalizations.toString()}`;
457
+ }
458
+ return url;
459
+ }
460
+ },
461
+ permissions: (applicationId, guildId)=>{
462
+ return `/applications/${applicationId}/guilds/${guildId}/commands/permissions`;
463
+ },
464
+ permission: (applicationId, guildId, commandId)=>{
465
+ return `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}/permissions`;
466
+ },
467
+ command: (applicationId, commandId, withLocalizations)=>{
468
+ let url = `/applications/${applicationId}/commands/${commandId}?`;
469
+ if (withLocalizations !== undefined) {
470
+ url += `withLocalizations=${withLocalizations.toString()}`;
471
+ }
472
+ return url;
473
+ }
474
+ },
475
+ responses: {
476
+ // Interaction Endpoints
477
+ callback: (interactionId, token)=>{
478
+ return `/interactions/${interactionId}/${token}/callback`;
479
+ },
480
+ original: (interactionId, token)=>{
481
+ return `/webhooks/${interactionId}/${token}/messages/@original`;
482
+ },
483
+ message: (applicationId, token, messageId)=>{
484
+ return `/webhooks/${applicationId}/${token}/messages/${messageId}`;
485
+ }
486
+ }
487
+ },
488
+ // OAuth2 endpoints
489
+ oauth2: {
490
+ tokenExchange: ()=>{
491
+ return '/oauth2/token';
492
+ },
493
+ tokenRevoke: ()=>{
494
+ return '/oauth2/token/revoke';
495
+ },
496
+ currentAuthorization: ()=>{
497
+ return '/oauth2/@me';
498
+ },
499
+ application: ()=>{
500
+ return '/oauth2/applications/@me';
501
+ },
502
+ connections: ()=>{
503
+ return '/users/@me/connections';
504
+ },
505
+ roleConnections: (applicationId)=>{
506
+ return `/users/@me/applications/${applicationId}/role-connection`;
507
+ }
508
+ },
509
+ // User endpoints
510
+ user (userId) {
511
+ return `/users/${userId}`;
512
+ },
513
+ currentUser () {
514
+ return '/users/@me';
515
+ },
516
+ gatewayBot () {
517
+ return '/gateway/bot';
518
+ },
519
+ nitroStickerPacks () {
520
+ return '/sticker-packs';
521
+ }
522
+ };
523
+ }
524
+
525
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes.ts"],"sourcesContent":["import type { GetMessagesOptions, GetScheduledEventUsers } from '@discordeno/types'\nimport { isGetMessagesAfter, isGetMessagesAround, isGetMessagesBefore, isGetMessagesLimit } from '@discordeno/utils'\nimport type { RestRoutes } from './typings/routes.js'\n\nexport function createRoutes(): RestRoutes {\n return {\n webhooks: {\n id: (webhookId) => {\n return `/webhooks/${webhookId}`\n },\n message: (webhookId, token, messageId, options) => {\n let url = `/webhooks/${webhookId}/${token}/messages/${messageId}?`\n\n if (options) {\n if (options.threadId) url += `thread_id=${options.threadId}`\n }\n\n return url\n },\n original: (webhookId, token, options) => {\n let url = `/webhooks/${webhookId}/${token}/messages/@original?`\n\n if (options) {\n if (options.threadId) url += `thread_id=${options.threadId}`\n }\n\n return url\n },\n webhook: (webhookId, token, options) => {\n let url = `/webhooks/${webhookId}/${token}?`\n\n if (options) {\n if (options?.wait !== undefined) url += `wait=${options.wait.toString()}`\n if (options.threadId) url += `thread_id=${options.threadId}`\n }\n\n return url\n },\n },\n\n // Channel Endpoints\n channels: {\n bulk: (channelId) => {\n return `/channels/${channelId}/messages/bulk-delete`\n },\n dm: () => {\n return '/users/@me/channels'\n },\n dmRecipient: (channelId, userId) => {\n return `/channels/${channelId}/recipients/${userId}`\n },\n pin: (channelId, messageId) => {\n return `/channels/${channelId}/pins/${messageId}`\n },\n pins: (channelId) => {\n return `/channels/${channelId}/pins`\n },\n reactions: {\n bot: (channelId, messageId, emoji) => {\n return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me`\n },\n user: (channelId, messageId, emoji, userId) => {\n return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/${userId}`\n },\n all: (channelId, messageId) => {\n return `/channels/${channelId}/messages/${messageId}/reactions`\n },\n emoji: (channelId, messageId, emoji, options) => {\n let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n }\n\n return url\n },\n message: (channelId, messageId, emoji, options) => {\n let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n }\n\n return url\n },\n },\n webhooks: (channelId) => {\n return `/channels/${channelId}/webhooks`\n },\n\n channel: (channelId) => {\n return `/channels/${channelId}`\n },\n\n follow: (channelId) => {\n return `/channels/${channelId}/followers`\n },\n\n forum: (channelId) => {\n return `/channels/${channelId}/threads?has_message=true`\n },\n\n invites: (channelId) => {\n return `/channels/${channelId}/invites`\n },\n\n message: (channelId, messageId) => {\n return `/channels/${channelId}/messages/${messageId}`\n },\n\n messages: (channelId, options?: GetMessagesOptions) => {\n let url = `/channels/${channelId}/messages?`\n\n if (options) {\n if (isGetMessagesAfter(options) && options.after) {\n url += `after=${options.after}`\n }\n if (isGetMessagesBefore(options) && options.before) {\n url += `&before=${options.before}`\n }\n if (isGetMessagesAround(options) && options.around) {\n url += `&around=${options.around}`\n }\n if (isGetMessagesLimit(options) && options.limit) {\n url += `&limit=${options.limit}`\n }\n }\n\n return url\n },\n\n overwrite: (channelId, overwriteId) => {\n return `/channels/${channelId}/permissions/${overwriteId}`\n },\n\n crosspost: (channelId, messageId) => {\n return `/channels/${channelId}/messages/${messageId}/crosspost`\n },\n\n stages: () => {\n return '/stage-instances'\n },\n\n stage: (channelId) => {\n return `/stage-instances/${channelId}`\n },\n\n // Thread Endpoints\n threads: {\n message: (channelId, messageId) => {\n return `/channels/${channelId}/messages/${messageId}/threads`\n },\n all: (channelId) => {\n return `/channels/${channelId}/threads`\n },\n active: (guildId) => {\n return `/guilds/${guildId}/threads/active`\n },\n members: (channelId) => {\n return `/channels/${channelId}/thread-members`\n },\n me: (channelId) => {\n return `/channels/${channelId}/thread-members/@me`\n },\n user: (channelId, userId) => {\n return `/channels/${channelId}/thread-members/${userId}`\n },\n archived: (channelId) => {\n return `/channels/${channelId}/threads/archived`\n },\n public: (channelId, options) => {\n let url = `/channels/${channelId}/threads/archived/public?`\n\n if (options) {\n if (options.before) {\n url += `before=${new Date(options.before).toISOString()}`\n }\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n }\n\n return url\n },\n private: (channelId, options) => {\n let url = `/channels/${channelId}/threads/archived/private?`\n\n if (options) {\n if (options.before) {\n url += `before=${new Date(options.before).toISOString()}`\n }\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n }\n\n return url\n },\n joined: (channelId, options) => {\n let url = `/channels/${channelId}/users/@me/threads/archived/private?`\n\n if (options) {\n if (options.before) {\n url += `before=${new Date(options.before).toISOString()}`\n }\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n }\n\n return url\n },\n },\n\n typing: (channelId) => {\n return `/channels/${channelId}/typing`\n },\n },\n\n // Guild Endpoints\n guilds: {\n all: () => {\n return '/guilds'\n },\n userGuilds: (options) => {\n let url = '/users/@me/guilds?'\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.before) url += `&before=${options.before}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.withCounts) url += `&with_counts=${options.withCounts}`\n }\n\n return url\n },\n auditlogs: (guildId, options) => {\n let url = `/guilds/${guildId}/audit-logs?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.actionType) url += `action_type=${options.actionType}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.before) url += `&before=${options.before}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `&after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `&limit=${options.limit}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.userId) url += `&user_id=${options.userId}`\n }\n\n return url\n },\n automod: {\n rule: (guildId, ruleId) => {\n return `/guilds/${guildId}/auto-moderation/rules/${ruleId}`\n },\n rules: (guildId) => {\n return `/guilds/${guildId}/auto-moderation/rules`\n },\n },\n channels: (guildId) => {\n return `/guilds/${guildId}/channels`\n },\n emoji: (guildId, emojiId) => {\n return `/guilds/${guildId}/emojis/${emojiId}`\n },\n emojis: (guildId) => {\n return `/guilds/${guildId}/emojis`\n },\n events: {\n events: (guildId, withUserCount?: boolean) => {\n let url = `/guilds/${guildId}/scheduled-events?`\n\n if (withUserCount !== undefined) {\n url += `with_user_count=${withUserCount.toString()}`\n }\n return url\n },\n event: (guildId, eventId, withUserCount?: boolean) => {\n let url = `/guilds/${guildId}/scheduled-events/${eventId}`\n\n if (withUserCount !== undefined) {\n url += `with_user_count=${withUserCount.toString()}`\n }\n\n return url\n },\n users: (guildId, eventId, options?: GetScheduledEventUsers) => {\n let url = `/guilds/${guildId}/scheduled-events/${eventId}/users?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit !== undefined) url += `limit=${options.limit}`\n if (options.withMember !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&with_member=${options.withMember.toString()}`\n }\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after !== undefined) url += `&after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.before !== undefined) url += `&before=${options.before}`\n }\n\n return url\n },\n },\n guild(guildId, withCounts) {\n let url = `/guilds/${guildId}?`\n\n if (withCounts !== undefined) {\n url += `with_counts=${withCounts.toString()}`\n }\n\n return url\n },\n integration(guildId, integrationId) {\n return `/guilds/${guildId}/integrations/${integrationId}`\n },\n integrations: (guildId) => {\n return `/guilds/${guildId}/integrations?include_applications=true`\n },\n invite(inviteCode, options) {\n let url = `/invites/${inviteCode}?`\n\n if (options) {\n if (options.withCounts !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `with_counts=${options.withCounts.toString()}`\n }\n if (options.withExpiration !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&with_expiration=${options.withExpiration.toString()}`\n }\n if (options.scheduledEventId) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&guild_scheduled_event_id=${options.scheduledEventId}`\n }\n }\n\n return url\n },\n invites: (guildId) => {\n return `/guilds/${guildId}/invites`\n },\n leave: (guildId) => {\n return `/users/@me/guilds/${guildId}`\n },\n members: {\n ban: (guildId, userId) => {\n return `/guilds/${guildId}/bans/${userId}`\n },\n bans: (guildId, options) => {\n let url = `/guilds/${guildId}/bans?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `limit=${options.limit}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `&after=${options.after}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.before) url += `&before=${options.before}`\n }\n\n return url\n },\n bot: (guildId) => {\n return `/guilds/${guildId}/members/@me`\n },\n member: (guildId, userId) => {\n return `/guilds/${guildId}/members/${userId}`\n },\n currentMember: (guildId) => {\n return `/users/@me/guilds/${guildId}/member`\n },\n members: (guildId, options) => {\n let url = `/guilds/${guildId}/members?`\n\n if (options !== undefined) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.limit) url += `limit=${options.limit}`\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.after) url += `&after=${options.after}`\n }\n\n return url\n },\n search: (guildId, query, options) => {\n let url = `/guilds/${guildId}/members/search?query=${encodeURIComponent(query)}`\n\n if (options) {\n if (options.limit !== undefined) url += `&limit=${options.limit}`\n }\n\n return url\n },\n prune: (guildId, options) => {\n let url = `/guilds/${guildId}/prune?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.days) url += `days=${options.days}`\n if (Array.isArray(options.includeRoles)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&include_roles=${options.includeRoles.join(',')}`\n } else if (options.includeRoles) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&include_roles=${options.includeRoles}`\n }\n }\n\n return url\n },\n },\n mfa: (guildId) => `/guilds/${guildId}/mfa`,\n preview: (guildId) => {\n return `/guilds/${guildId}/preview`\n },\n prune: (guildId, options) => {\n let url = `/guilds/${guildId}/prune?`\n\n if (options) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n if (options.days) url += `days=${options.days}`\n if (Array.isArray(options.includeRoles)) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&include_roles=${options.includeRoles.join(',')}`\n } else if (options.includeRoles) {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n url += `&include_roles=${options.includeRoles}`\n }\n }\n\n return url\n },\n roles: {\n one: (guildId, roleId) => {\n return `/guilds/${guildId}/roles/${roleId}`\n },\n all: (guildId) => {\n return `/guilds/${guildId}/roles`\n },\n member: (guildId, memberId, roleId) => {\n return `/guilds/${guildId}/members/${memberId}/roles/${roleId}`\n },\n },\n stickers: (guildId) => {\n return `/guilds/${guildId}/stickers`\n },\n sticker: (guildId, stickerId) => {\n return `/guilds/${guildId}/stickers/${stickerId}`\n },\n voice: (guildId, userId) => {\n return `/guilds/${guildId}/voice-states/${userId ?? '@me'}`\n },\n templates: {\n code: (code) => {\n return `/guilds/templates/${code}`\n },\n guild: (guildId, code) => {\n return `/guilds/${guildId}/templates/${code}`\n },\n all: (guildId) => {\n return `/guilds/${guildId}/templates`\n },\n },\n vanity: (guildId) => {\n return `/guilds/${guildId}/vanity-url`\n },\n regions: (guildId) => {\n return `/guilds/${guildId}/regions`\n },\n webhooks: (guildId) => {\n return `/guilds/${guildId}/webhooks`\n },\n welcome: (guildId) => {\n return `/guilds/${guildId}/welcome-screen`\n },\n widget: (guildId) => {\n return `/guilds/${guildId}/widget`\n },\n widgetJson: (guildId) => {\n return `/guilds/${guildId}/widget.json`\n },\n },\n\n sticker: (stickerId) => {\n return `/stickers/${stickerId}`\n },\n\n regions: () => {\n return '/voice/regions'\n },\n\n // Interaction Endpoints\n interactions: {\n commands: {\n // Application Endpoints\n commands: (applicationId) => {\n return `/applications/${applicationId}/commands`\n },\n\n guilds: {\n all(applicationId, guildId) {\n return `/applications/${applicationId}/guilds/${guildId}/commands`\n },\n\n one(applicationId, guildId, commandId, withLocalizations) {\n let url = `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}?`\n\n if (withLocalizations !== undefined) {\n url += `with_localizations=${withLocalizations.toString()}`\n }\n\n return url\n },\n },\n permissions: (applicationId, guildId) => {\n return `/applications/${applicationId}/guilds/${guildId}/commands/permissions`\n },\n permission: (applicationId, guildId, commandId) => {\n return `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}/permissions`\n },\n command: (applicationId, commandId, withLocalizations) => {\n let url = `/applications/${applicationId}/commands/${commandId}?`\n\n if (withLocalizations !== undefined) {\n url += `withLocalizations=${withLocalizations.toString()}`\n }\n\n return url\n },\n },\n\n responses: {\n // Interaction Endpoints\n callback: (interactionId, token) => {\n return `/interactions/${interactionId}/${token}/callback`\n },\n original: (interactionId, token) => {\n return `/webhooks/${interactionId}/${token}/messages/@original`\n },\n message: (applicationId, token, messageId) => {\n return `/webhooks/${applicationId}/${token}/messages/${messageId}`\n },\n },\n },\n\n // OAuth2 endpoints\n oauth2: {\n tokenExchange: () => {\n return '/oauth2/token'\n },\n tokenRevoke: () => {\n return '/oauth2/token/revoke'\n },\n currentAuthorization: () => {\n return '/oauth2/@me'\n },\n application: () => {\n return '/oauth2/applications/@me'\n },\n connections: () => {\n return '/users/@me/connections'\n },\n roleConnections: (applicationId) => {\n return `/users/@me/applications/${applicationId}/role-connection`\n },\n },\n\n // User endpoints\n user(userId) {\n return `/users/${userId}`\n },\n\n currentUser() {\n return '/users/@me'\n },\n\n gatewayBot() {\n return '/gateway/bot'\n },\n\n nitroStickerPacks() {\n return '/sticker-packs'\n },\n }\n}\n"],"names":["isGetMessagesAfter","isGetMessagesAround","isGetMessagesBefore","isGetMessagesLimit","createRoutes","webhooks","id","webhookId","message","token","messageId","options","url","threadId","original","webhook","wait","undefined","toString","channels","bulk","channelId","dm","dmRecipient","userId","pin","pins","reactions","bot","emoji","encodeURIComponent","user","all","after","limit","channel","follow","forum","invites","messages","before","around","overwrite","overwriteId","crosspost","stages","stage","threads","active","guildId","members","me","archived","public","Date","toISOString","private","joined","typing","guilds","userGuilds","withCounts","auditlogs","actionType","automod","rule","ruleId","rules","emojiId","emojis","events","withUserCount","event","eventId","users","withMember","guild","integration","integrationId","integrations","invite","inviteCode","withExpiration","scheduledEventId","leave","ban","bans","member","currentMember","search","query","prune","days","Array","isArray","includeRoles","join","mfa","preview","roles","one","roleId","memberId","stickers","sticker","stickerId","voice","templates","code","vanity","regions","welcome","widget","widgetJson","interactions","commands","applicationId","commandId","withLocalizations","permissions","permission","command","responses","callback","interactionId","oauth2","tokenExchange","tokenRevoke","currentAuthorization","application","connections","roleConnections","currentUser","gatewayBot","nitroStickerPacks"],"mappings":"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"}