@discordeno/rest 19.0.0-next.fc13bdf → 19.0.0-next.fdf0d53
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/manager.d.ts.map +1 -1
- package/dist/manager.js +404 -233
- package/dist/manager.js.map +1 -1
- package/dist/queue.js +10 -10
- package/dist/queue.js.map +1 -1
- package/dist/types.d.ts +201 -193
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +17 -16
package/dist/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/manager.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable no-const-assign */\nimport { InteractionResponseTypes } from '@discordeno/types'\nimport {\n calculateBits,\n camelize,\n camelToSnakeCase,\n delay,\n findFiles,\n getBotIdFromToken,\n isGetMessagesAfter,\n isGetMessagesAround,\n isGetMessagesBefore,\n isGetMessagesLimit,\n logger,\n processReactionString,\n urlToBase64,\n} from '@discordeno/utils'\n\nimport { createInvalidRequestBucket } from './invalidBucket.js'\nimport { Queue } from './queue.js'\n\nimport type {\n BigString,\n Camelize,\n DiscordApplication,\n DiscordApplicationCommand,\n DiscordApplicationCommandPermissions,\n DiscordAuditLog,\n DiscordAutoModerationRule,\n DiscordBan,\n DiscordChannel,\n DiscordEmoji,\n DiscordFollowAnnouncementChannel,\n DiscordFollowedChannel,\n DiscordGetGatewayBot,\n DiscordGuild,\n DiscordGuildPreview,\n DiscordGuildWidget,\n DiscordGuildWidgetSettings,\n DiscordIntegration,\n DiscordInvite,\n DiscordInviteMetadata,\n DiscordListActiveThreads,\n DiscordListArchivedThreads,\n DiscordMember,\n DiscordMemberWithUser,\n DiscordMessage,\n DiscordPrunedCount,\n DiscordRole,\n DiscordScheduledEvent,\n DiscordStageInstance,\n DiscordSticker,\n DiscordStickerPack,\n DiscordTemplate,\n DiscordThreadMember,\n DiscordUser,\n DiscordVanityUrl,\n DiscordVoiceRegion,\n DiscordWebhook,\n DiscordWelcomeScreen,\n GetMessagesOptions,\n GetScheduledEventUsers,\n MfaLevels,\n ModifyGuildTemplate,\n} from '@discordeno/types'\nimport type { CreateRestManagerOptions, RestManager, SendRequestOptions } from './types.js'\n\n// TODO: make dynamic based on package.json file\nconst version = '19.0.0-alpha.1'\n\nexport function createRestManager(options: CreateRestManagerOptions): RestManager {\n // Falsy token string check\n if (!options.token) throw new Error('You must provide a valid token.')\n\n const rest: RestManager = {\n token: options.token,\n applicationId: options.applicationId ? BigInt(options.applicationId) : getBotIdFromToken(options.token),\n version: options.version ?? 10,\n baseUrl: options.baseUrl ?? 'https://discord.com/api',\n maxRetryCount: Infinity,\n globallyRateLimited: false,\n processingRateLimitedPaths: false,\n deleteQueueDelay: 60000,\n queues: new Map(),\n rateLimitedPaths: new Map(),\n invalidBucket: createInvalidRequestBucket({}),\n\n routes: {\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 // Miscellaneous Endpoints\n sessionInfo: () => rest.routes.gatewayBot(),\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 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 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.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 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: BigString) => {\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 // User endpoints\n user(userId) {\n return `/users/${userId}`\n },\n\n userBot() {\n return '/users/@me'\n },\n\n oauth2Application() {\n return 'oauth2/applications/@me'\n },\n\n gatewayBot() {\n return '/gateway/bot'\n },\n\n nitroStickerPacks() {\n return '/sticker-packs'\n },\n },\n\n checkRateLimits(url) {\n const ratelimited = rest.rateLimitedPaths.get(url)\n const global = rest.rateLimitedPaths.get('global')\n const now = Date.now()\n\n if (ratelimited && now < ratelimited.resetTimestamp) {\n return ratelimited.resetTimestamp - now\n }\n\n if (global && now < global.resetTimestamp) {\n return global.resetTimestamp - now\n }\n\n return false\n },\n\n changeToDiscordFormat(obj: any): any {\n if (obj === null) return null\n\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return obj.map((item) => rest.changeToDiscordFormat(item))\n }\n\n const newObj: any = {}\n\n for (const key of Object.keys(obj)) {\n // Keys that dont require snake casing\n if (['permissions', 'allow', 'deny'].includes(key)) {\n newObj[key] = calculateBits(obj[key])\n continue\n }\n\n if (key === 'defaultMemberPermissions') {\n newObj.default_member_permissions = calculateBits(obj[key]);\n continue;\n }\n\n newObj[camelToSnakeCase(key)] = rest.changeToDiscordFormat(obj[key])\n }\n\n return newObj\n }\n\n if (typeof obj === 'bigint') return obj.toString()\n\n return obj\n },\n\n createRequest(options) {\n const headers: Record<string, string> = {\n 'user-agent': `DiscordBot (https://github.com/discordeno/discordeno, v${version})`,\n }\n\n if (!options.unauthorized) headers.authorization = `Bot ${rest.token}`\n\n // SOMETIMES SPECIAL HEADERS (E.G. CUSTOM AUTHORIZATION) NEED TO BE USED\n if (options.headers) {\n for (const key in options.headers) {\n headers[key.toLowerCase()] = options.headers[key]\n }\n }\n\n // GET METHODS SHOULD NOT HAVE A BODY\n if (options.method === 'GET') {\n options.body = undefined\n }\n\n // IF A REASON IS PROVIDED ENCODE IT IN HEADERS\n if (options.body?.reason) {\n headers['X-Audit-Log-Reason'] = encodeURIComponent(options.body.reason as string)\n options.body.reason = undefined\n }\n\n if (options.body) {\n const { file } = options.body\n if (file) {\n const files = findFiles(file)\n const form = new FormData()\n\n // WHEN CREATING A STICKER, DISCORD WANTS FORM DATA ONLY\n if (options.url?.endsWith('/stickers') && options.method === 'POST') {\n form.append('file', files[0].blob, files[0].name)\n form.append('name', options.body.name as string)\n form.append('description', options.body.description as string)\n form.append('tags', options.body.tags as string)\n } else {\n for (let i = 0; i < files.length; i++) {\n form.append(`file${i}`, files[i].blob, files[i].name)\n }\n\n if (file) options.body.file = undefined\n form.append('payload_json', JSON.stringify(rest.changeToDiscordFormat(options.body)))\n }\n\n options.body.file = form\n } else if (options.body && !['GET', 'DELETE'].includes(options.method)) {\n headers['Content-Type'] = 'application/json'\n }\n }\n\n return {\n headers,\n body: (options.body?.file ?? JSON.stringify(rest.changeToDiscordFormat(options.body))) as FormData | string,\n method: options.method,\n }\n },\n\n processRateLimitedPaths() {\n const now = Date.now()\n\n for (const [key, value] of rest.rateLimitedPaths.entries()) {\n // rest.debug(\n // `[REST - processRateLimitedPaths] Running for of loop. ${\n // value.resetTimestamp - now\n // }`\n // )\n // If the time has not reached cancel\n if (value.resetTimestamp > now) continue\n\n // Rate limit is over, delete the rate limiter\n rest.rateLimitedPaths.delete(key)\n // If it was global, also mark the global value as false\n if (key === 'global') rest.globallyRateLimited = false\n }\n\n // ALL PATHS ARE CLEARED CAN CANCEL OUT!\n if (rest.rateLimitedPaths.size === 0) {\n rest.processingRateLimitedPaths = false\n } else {\n rest.processingRateLimitedPaths = true\n // RECHECK IN 1 SECOND\n setTimeout(() => {\n // rest.debug('[REST - processRateLimitedPaths] Running setTimeout.')\n rest.processRateLimitedPaths()\n }, 1000)\n }\n },\n\n /** Processes the rate limit headers and determines if it needs to be rate limited and returns the bucket id if available */\n processHeaders(url, headers) {\n let rateLimited = false\n\n // GET ALL NECESSARY HEADERS\n const remaining = headers.get('x-ratelimit-remaining')\n const retryAfter = headers.get('x-ratelimit-reset-after')\n const reset = Date.now() + Number(retryAfter) * 1000\n const global = headers.get('x-ratelimit-global')\n // undefined override null needed for typings\n const bucketId = headers.get('x-ratelimit-bucket') ?? undefined\n const limit = headers.get('x-ratelimit-limit')\n\n rest.queues.get(url)?.handleCompletedRequest({\n remaining: remaining ? Number(remaining) : undefined,\n interval: retryAfter ? Number(retryAfter) * 1000 : undefined,\n max: limit ? Number(limit) : undefined,\n })\n\n // IF THERE IS NO REMAINING RATE LIMIT, MARK IT AS RATE LIMITED\n if (remaining === '0') {\n rateLimited = true\n\n // SAVE THE URL AS LIMITED, IMPORTANT FOR NEW REQUESTS BY USER WITHOUT BUCKET\n rest.rateLimitedPaths.set(url, {\n url,\n resetTimestamp: reset,\n bucketId,\n })\n\n // SAVE THE BUCKET AS LIMITED SINCE DIFFERENT URLS MAY SHARE A BUCKET\n if (bucketId) {\n rest.rateLimitedPaths.set(bucketId, {\n url,\n resetTimestamp: reset,\n bucketId,\n })\n }\n }\n\n // IF THERE IS NO REMAINING GLOBAL LIMIT, MARK IT RATE LIMITED GLOBALLY\n if (global) {\n const retryAfter = headers.get('retry-after')\n const globalReset = Date.now() + Number(retryAfter) * 1000\n // rest.debug(\n // `[REST = Globally Rate Limited] URL: ${url} | Global Rest: ${globalReset}`\n // )\n rest.globallyRateLimited = true\n rateLimited = true\n\n setTimeout(() => {\n rest.globallyRateLimited = false\n }, globalReset)\n\n rest.rateLimitedPaths.set('global', {\n url: 'global',\n resetTimestamp: globalReset,\n bucketId,\n })\n\n if (bucketId) {\n rest.rateLimitedPaths.set(bucketId, {\n url: 'global',\n resetTimestamp: globalReset,\n bucketId,\n })\n }\n }\n\n if (rateLimited && !rest.processingRateLimitedPaths) {\n rest.processRateLimitedPaths()\n }\n return rateLimited ? bucketId : undefined\n },\n\n async sendRequest(options) {\n const url = options.url.startsWith('https://') ? options.url : `${rest.baseUrl}/v${rest.version}${options.url}`\n const payload = rest.createRequest({ method: options.method, url: options.url, body: options.body, ...options.options })\n\n logger.debug(`sending request to ${url}`, 'with payload:', { ...payload, headers: { ...payload.headers, authorization: 'Bot tokenhere' } })\n const response = await fetch(url, payload)\n logger.debug(`request fetched from ${url} with status ${response.status} & ${response.statusText}`)\n\n // Set the bucket id if it was available on the headers\n const bucketId = rest.processHeaders(rest.simplifyUrl(options.url, options.method), response.headers)\n if (bucketId) options.bucketId = bucketId\n\n if (response.status < 200 || response.status >= 400) {\n logger.debug(`Request to ${url} failed.`)\n\n if (response.status === 429) {\n logger.debug(`Request to ${url} was ratelimited.`)\n // Too many attempts, get rid of request from queue.\n if (options.retryCount++ >= rest.maxRetryCount) {\n logger.debug(`Request to ${url} exceeded the maximum allowed retries.`, 'with payload:', payload)\n // rest.debug(`[REST - RetriesMaxed] ${JSON.stringify(options)}`)\n // Remove item from queue to prevent retry\n return options.reject({\n ok: false,\n status: response.status,\n error: 'The options was rate limited and it maxed out the retries limit.',\n })\n }\n\n // Rate limited, add back to queue\n rest.invalidBucket.handleCompletedRequest(response.status, response.headers.get('X-RateLimit-Scope') === 'shared')\n\n const resetAfter = response.headers.get('x-ratelimit-reset-after')\n if (resetAfter) await delay(Number(resetAfter) * 1000)\n // process the response to prevent mem leak\n await response.json()\n\n return await options.retryRequest?.(options)\n }\n\n return options.reject({ ok: false, status: response.status, body: JSON.stringify(await response.json()) })\n }\n\n const is204 = response.status === 204\n const json = is204 ? undefined : await response.json()\n // Discord sometimes sends no response with 204 code\n return options.resolve({ ok: true, status: response.status, body: JSON.stringify(json) })\n },\n\n // Credits: github.com/abalabahaha/eris lib/rest/RequestHandler.js#L397\n // Modified for our use-case\n simplifyUrl(url, method) {\n let route = url\n .replace(/\\/([a-z-]+)\\/(?:[0-9]{17,19})/g, function (match, p: string) {\n return ['channels', 'guilds'].includes(p) ? match : `/${p}/x`\n })\n .replace(/\\/reactions\\/[^/]+/g, '/reactions/x')\n\n // GENERAL /reactions and /reactions/emoji/@me share the buckets\n if (route.includes('/reactions')) {\n route = route.substring(0, route.indexOf('/reactions') + '/reactions'.length)\n }\n\n // Delete Message endpoint has its own rate limit\n if (method === 'DELETE' && route.endsWith('/messages/x')) {\n route = method + route\n }\n\n return route\n },\n\n processRequest(request: SendRequestOptions) {\n const route = request.url.substring(request.url.indexOf('api/'))\n const parts = route.split('/')\n // Remove the api/\n parts.shift()\n // Removes the /v#/\n if (parts[0]?.startsWith('v')) parts.shift()\n // Set the full url to discord api in case it was recieved in a proxy rest\n request.url = `${rest.baseUrl}/v${rest.version}/${parts.join('/')}`\n\n const url = rest.simplifyUrl(request.url, request.method)\n const queue = rest.queues.get(url)\n\n if (queue !== undefined) {\n queue.makeRequest(request)\n } else {\n // CREATES A NEW QUEUE\n const bucketQueue = new Queue(rest, { url, deleteQueueDelay: rest.deleteQueueDelay })\n\n // Add request to queue\n bucketQueue.makeRequest(request)\n // Save queue\n rest.queues.set(url, bucketQueue)\n }\n },\n\n async makeRequest(method, url, body, options) {\n return await new Promise((resolve, reject) => {\n const payload: SendRequestOptions = {\n url,\n method,\n body,\n retryCount: 0,\n retryRequest: async function (options: SendRequestOptions) {\n rest.processRequest(payload)\n },\n resolve: (data) => resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined),\n reject,\n options,\n }\n\n rest.processRequest(payload)\n })\n },\n\n async get<T = Record<string, unknown>>(url: string) {\n return camelize(await rest.makeRequest('GET', url)) as Camelize<T>\n },\n\n async post<T = Record<string, unknown>>(url: string, body?: Record<string, any>) {\n return camelize(await rest.makeRequest('POST', url, body)) as Camelize<T>\n },\n\n async delete(url: string, body?: Record<string, any>) {\n return camelize(await rest.makeRequest('DELETE', url, body))\n },\n\n async patch<T = Record<string, unknown>>(url: string, body?: Record<string, any>) {\n return camelize(await rest.makeRequest('PATCH', url, body)) as Camelize<T>\n },\n\n async put<T = void>(url: string, body?: Record<string, any>, options?: Record<string, any>) {\n return camelize(await rest.makeRequest('PUT', url, body, options)) as Camelize<T>\n },\n\n async addReaction(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n return await rest.put(rest.routes.channels.reactions.bot(channelId, messageId, reaction))\n },\n\n async addReactions(channelId, messageId, reactions, ordered = false) {\n if (!ordered) {\n await Promise.all(reactions.map(async (reaction) => await rest.addReaction(channelId, messageId, reaction)))\n return\n }\n\n for (const reaction of reactions) {\n await rest.addReaction(channelId, messageId, reaction)\n }\n },\n\n async addRole(guildId, userId, roleId, reason) {\n return await rest.put(rest.routes.guilds.roles.member(guildId, userId, roleId), { reason })\n },\n\n async addThreadMember(channelId, userId) {\n return await rest.put(rest.routes.channels.threads.user(channelId, userId))\n },\n\n async createAutomodRule(guildId, options) {\n return await rest.post<DiscordAutoModerationRule>(rest.routes.guilds.automod.rules(guildId), options)\n },\n\n async createChannel(guildId, options) {\n return await rest.post<DiscordChannel>(rest.routes.guilds.channels(guildId), options)\n },\n\n async createEmoji(guildId, options) {\n return await rest.post<DiscordEmoji>(rest.routes.guilds.emojis(guildId), options)\n },\n\n async createGlobalApplicationCommand(command) {\n return await rest.post<DiscordApplicationCommand>(rest.routes.interactions.commands.commands(rest.applicationId), command)\n },\n\n async createGuild(options) {\n return await rest.post<DiscordGuild>(rest.routes.guilds.all(), options)\n },\n\n async createGuildApplicationCommand(command, guildId) {\n return await rest.post<DiscordApplicationCommand>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId), command)\n },\n\n async createGuildFromTemplate(templateCode, options) {\n if (options.icon) {\n options.icon = await urlToBase64(options.icon)\n }\n\n return await rest.post<DiscordGuild>(rest.routes.guilds.templates.code(templateCode), options)\n },\n\n async createGuildSticker(guildId, options) {\n return await rest.post<DiscordSticker>(rest.routes.guilds.stickers(guildId), options)\n },\n\n async createGuildTemplate(guildId, options) {\n return await rest.post<DiscordTemplate>(rest.routes.guilds.templates.all(guildId), options)\n },\n\n async createForumThread(channelId, options) {\n return await rest.post<DiscordChannel>(rest.routes.channels.forum(channelId), options)\n },\n\n async createInvite(channelId, options = {}) {\n return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), options)\n },\n\n async createRole(guildId, options, reason) {\n return await rest.post<DiscordRole>(rest.routes.guilds.roles.all(guildId), {\n ...options,\n reason,\n })\n },\n\n async createScheduledEvent(guildId, options) {\n return await rest.post<DiscordScheduledEvent>(rest.routes.guilds.events.events(guildId), options)\n },\n\n async createStageInstance(options) {\n return await rest.post<DiscordStageInstance>(rest.routes.channels.stages(), options)\n },\n\n async createWebhook(channelId, options) {\n return await rest.post<DiscordWebhook>(rest.routes.channels.webhooks(channelId), {\n name: options.name,\n avatar: options.avatar ? await urlToBase64(options.avatar) : undefined,\n reason: options.reason,\n })\n },\n\n async deleteAutomodRule(guildId, ruleId, reason) {\n return await rest.delete(rest.routes.guilds.automod.rule(guildId, ruleId), { reason })\n },\n\n async deleteChannel(channelId, reason) {\n return await rest.delete(rest.routes.channels.channel(channelId), {\n reason,\n })\n },\n\n async deleteChannelPermissionOverride(channelId, overwriteId, reason) {\n return await rest.delete(rest.routes.channels.overwrite(channelId, overwriteId), reason ? { reason } : undefined)\n },\n\n async deleteEmoji(guildId, id, reason) {\n return await rest.delete(rest.routes.guilds.emoji(guildId, id), { reason })\n },\n\n async deleteFollowupMessage(token, messageId) {\n return await rest.delete(rest.routes.interactions.responses.message(rest.applicationId, token, messageId))\n },\n\n async deleteGlobalApplicationCommand(commandId) {\n return await rest.delete(rest.routes.interactions.commands.command(rest.applicationId, commandId))\n },\n\n async deleteGuild(guildId) {\n return await rest.delete(rest.routes.guilds.guild(guildId))\n },\n\n async deleteGuildApplicationCommand(commandId, guildId) {\n return await rest.delete(rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId))\n },\n\n async deleteGuildSticker(guildId, stickerId, reason) {\n return await rest.delete(rest.routes.guilds.sticker(guildId, stickerId), reason ? { reason } : undefined)\n },\n\n async deleteGuildTemplate(guildId, templateCode) {\n return await rest.delete(rest.routes.guilds.templates.guild(guildId, templateCode))\n },\n\n async deleteIntegration(guildId, integrationId) {\n return await rest.delete(rest.routes.guilds.integration(guildId, integrationId))\n },\n\n async deleteInvite(inviteCode, reason) {\n return await rest.delete(rest.routes.guilds.invite(inviteCode), reason ? { reason } : undefined)\n },\n\n async deleteMessage(channelId, messageId, reason) {\n return await rest.delete(rest.routes.channels.message(channelId, messageId), { reason })\n },\n\n async deleteMessages(channelId, messageIds, reason) {\n return await rest.post(rest.routes.channels.bulk(channelId), {\n messages: messageIds.slice(0, 100).map((id) => id.toString()),\n reason,\n })\n },\n\n async deleteOriginalInteractionResponse(token) {\n return await rest.delete(rest.routes.interactions.responses.original(rest.applicationId, token))\n },\n\n async deleteOwnReaction(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n return await rest.delete(rest.routes.channels.reactions.bot(channelId, messageId, reaction))\n },\n\n async deleteReactionsAll(channelId, messageId) {\n return await rest.delete(rest.routes.channels.reactions.all(channelId, messageId))\n },\n\n async deleteReactionsEmoji(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n return await rest.delete(rest.routes.channels.reactions.emoji(channelId, messageId, reaction))\n },\n\n async deleteRole(guildId, roleId) {\n return await rest.delete(rest.routes.guilds.roles.one(guildId, roleId))\n },\n\n async deleteScheduledEvent(guildId, eventId) {\n return await rest.delete(rest.routes.guilds.events.event(guildId, eventId))\n },\n\n async deleteStageInstance(channelId, reason) {\n return await rest.delete(rest.routes.channels.stage(channelId), reason ? { reason } : undefined)\n },\n\n async deleteUserReaction(channelId, messageId, userId, reaction) {\n reaction = processReactionString(reaction)\n\n return await rest.delete(rest.routes.channels.reactions.user(channelId, messageId, reaction, userId))\n },\n\n async deleteWebhook(webhookId, reason) {\n return await rest.delete(rest.routes.webhooks.id(webhookId), { reason })\n },\n\n async deleteWebhookMessage(webhookId, token, messageId, options) {\n return await rest.delete(rest.routes.webhooks.message(webhookId, token, messageId, options))\n },\n\n async deleteWebhookWithToken(webhookId, token) {\n return await rest.delete(rest.routes.webhooks.webhook(webhookId, token))\n },\n\n async editApplicationCommandPermissions(guildId, commandId, bearerToken, options) {\n return await rest.put<DiscordApplicationCommandPermissions>(\n rest.routes.interactions.commands.permission(rest.applicationId, guildId, commandId),\n {\n permissions: options,\n },\n {\n headers: { authorization: `Bearer ${bearerToken}` },\n },\n )\n },\n\n async editAutomodRule(guildId, ruleId, options) {\n return await rest.patch<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId), options)\n },\n\n async editBotProfile(options) {\n const avatar = options?.botAvatarURL ? await urlToBase64(options?.botAvatarURL) : options?.botAvatarURL\n\n return await rest.patch<DiscordUser>(rest.routes.userBot(), {\n username: options.username?.trim(),\n avatar,\n })\n },\n\n async editChannel(channelId, options) {\n return await rest.patch<DiscordChannel>(rest.routes.channels.channel(channelId), options)\n },\n\n async editChannelPermissionOverrides(channelId, options) {\n return await rest.put(rest.routes.channels.overwrite(channelId, options.id), options)\n },\n\n async editChannelPositions(guildId, channelPositions) {\n return await rest.patch(rest.routes.guilds.channels(guildId), channelPositions)\n },\n\n async editEmoji(guildId, id, options) {\n return await rest.patch<DiscordEmoji>(rest.routes.guilds.emoji(guildId, id), options)\n },\n\n async editFollowupMessage(token, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId), options)\n },\n\n async editGlobalApplicationCommand(commandId, options) {\n return await rest.patch<DiscordApplicationCommand>(rest.routes.interactions.commands.command(rest.applicationId, commandId), options)\n },\n\n async editGuild(guildId, options) {\n return await rest.patch<DiscordGuild>(rest.routes.guilds.guild(guildId), options)\n },\n\n async editGuildApplicationCommand(commandId, guildId, options) {\n return await rest.patch<DiscordApplicationCommand>(\n rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId),\n options,\n )\n },\n\n async editGuildMfaLevel(guildId: BigString, mfaLevel: MfaLevels, reason?: string): Promise<void> {\n return await rest.post(rest.routes.guilds.mfa(guildId), { level: mfaLevel, reason })\n },\n\n async editGuildSticker(guildId, stickerId, options) {\n return await rest.patch<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId), options)\n },\n\n async editGuildTemplate(guildId, templateCode: string, options: ModifyGuildTemplate): Promise<Camelize<DiscordTemplate>> {\n return await rest.patch<DiscordTemplate>(rest.routes.guilds.templates.guild(guildId, templateCode), options)\n },\n\n async editMessage(channelId, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.channels.message(channelId, messageId), options)\n },\n\n async editOriginalInteractionResponse(token, options) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.original(rest.applicationId, token), options)\n },\n\n async editOriginalWebhookMessage(webhookId, token, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.original(webhookId, token, options), {\n type: InteractionResponseTypes.UpdateMessage,\n data: options,\n })\n },\n\n async editOwnVoiceState(guildId, options) {\n return await rest.patch(rest.routes.guilds.voice(guildId), {\n channel_id: options.channelId,\n suppress: options.suppress,\n request_to_speak_timestamp: options.requestToSpeakTimestamp\n ? new Date(options.requestToSpeakTimestamp).toISOString()\n : options.requestToSpeakTimestamp,\n })\n },\n\n async editScheduledEvent(guildId, eventId, options) {\n return await rest.patch<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId), options)\n },\n\n async editRole(guildId, roleId, options) {\n return await rest.patch<DiscordRole>(rest.routes.guilds.roles.one(guildId, roleId), options)\n },\n\n async editRolePositions(guildId, options) {\n return await rest.patch<DiscordRole[]>(rest.routes.guilds.roles.all(guildId), options)\n },\n\n async editStageInstance(channelId, data) {\n return await rest.patch<DiscordStageInstance>(rest.routes.channels.stage(channelId), { topic: data.topic })\n },\n\n async editUserVoiceState(guildId, options) {\n return await rest.patch(rest.routes.guilds.voice(guildId, options.userId), {\n channel_id: options.channelId,\n suppress: options.suppress,\n user_id: options.userId,\n })\n },\n\n async editWebhook(webhookId, options) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.id(webhookId), options)\n },\n\n async editWebhookMessage(webhookId, token, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options), options)\n },\n\n async editWebhookWithToken(webhookId, token, options) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.webhook(webhookId, token), options)\n },\n\n async editWelcomeScreen(guildId, options) {\n return await rest.patch<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId), options)\n },\n\n async editWidgetSettings(guildId, options) {\n return await rest.patch<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId), options)\n },\n\n async executeWebhook(webhookId, token, options) {\n return await rest.post<DiscordMessage>(rest.routes.webhooks.webhook(webhookId, token, options), options)\n },\n\n async followAnnouncement(sourceChannelId, targetChannelId) {\n return await rest.post<DiscordFollowedChannel>(rest.routes.channels.follow(sourceChannelId), {\n webhook_channel_id: targetChannelId,\n } as DiscordFollowAnnouncementChannel)\n },\n\n async getActiveThreads(guildId) {\n return await rest.get<DiscordListActiveThreads>(rest.routes.channels.threads.active(guildId))\n },\n\n async getApplicationCommandPermission(guildId, commandId) {\n return await rest.get<DiscordApplicationCommandPermissions>(\n rest.routes.interactions.commands.permission(rest.applicationId, guildId, commandId),\n )\n },\n\n async getApplicationCommandPermissions(guildId) {\n return await rest.get<DiscordApplicationCommandPermissions[]>(rest.routes.interactions.commands.permissions(rest.applicationId, guildId))\n },\n\n async getApplicationInfo() {\n return await rest.get<DiscordApplication>(rest.routes.oauth2Application())\n },\n\n async getAuditLog(guildId, options) {\n return await rest.get<DiscordAuditLog>(rest.routes.guilds.auditlogs(guildId, options))\n },\n\n async getAutomodRule(guildId, ruleId) {\n return await rest.get<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId))\n },\n\n async getAutomodRules(guildId) {\n return await rest.get<DiscordAutoModerationRule[]>(rest.routes.guilds.automod.rules(guildId))\n },\n\n async getAvailableVoiceRegions() {\n return await rest.get<DiscordVoiceRegion[]>(rest.routes.regions())\n },\n\n async getBan(guildId, userId) {\n return await rest.get<DiscordBan>(rest.routes.guilds.members.ban(guildId, userId))\n },\n\n async getBans(guildId, options) {\n return await rest.get<DiscordBan[]>(rest.routes.guilds.members.bans(guildId, options))\n },\n\n async getChannel(id) {\n return await rest.get<DiscordChannel>(rest.routes.channels.channel(id))\n },\n\n async getChannelInvites(channelId) {\n return await rest.get<DiscordInviteMetadata[]>(rest.routes.channels.invites(channelId))\n },\n\n async getChannels(guildId) {\n return await rest.get<DiscordChannel[]>(rest.routes.guilds.channels(guildId))\n },\n\n async getChannelWebhooks(channelId) {\n return await rest.get<DiscordWebhook[]>(rest.routes.channels.webhooks(channelId))\n },\n\n async getDmChannel(userId) {\n return await rest.post<DiscordChannel>(rest.routes.channels.dm(), {\n recipient_id: userId.toString(),\n })\n },\n\n async getEmoji(guildId, emojiId) {\n return await rest.get<DiscordEmoji>(rest.routes.guilds.emoji(guildId, emojiId))\n },\n\n async getEmojis(guildId) {\n return await rest.get<DiscordEmoji[]>(rest.routes.guilds.emojis(guildId))\n },\n\n async getFollowupMessage(token, messageId) {\n return await rest.get<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId))\n },\n\n async getGatewayBot() {\n return await rest.get<DiscordGetGatewayBot>(rest.routes.gatewayBot())\n },\n\n async getGlobalApplicationCommand(commandId) {\n return await rest.get<DiscordApplicationCommand>(rest.routes.interactions.commands.command(rest.applicationId, commandId))\n },\n\n async getGlobalApplicationCommands() {\n return await rest.get<DiscordApplicationCommand[]>(rest.routes.interactions.commands.commands(rest.applicationId))\n },\n\n async getGuild(guildId, options = { counts: true }) {\n return await rest.get<DiscordGuild>(rest.routes.guilds.guild(guildId, options.counts))\n },\n\n async getGuildApplicationCommand(commandId, guildId) {\n return await rest.get<DiscordApplicationCommand>(rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId))\n },\n\n async getGuildApplicationCommands(guildId) {\n return await rest.get<DiscordApplicationCommand[]>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId))\n },\n\n async getGuildPreview(guildId) {\n return await rest.get<DiscordGuildPreview>(rest.routes.guilds.preview(guildId))\n },\n\n async getGuildTemplate(templateCode) {\n return await rest.get<DiscordTemplate>(rest.routes.guilds.templates.code(templateCode))\n },\n\n async getGuildTemplates(guildId) {\n return await rest.get<DiscordTemplate[]>(rest.routes.guilds.templates.all(guildId))\n },\n\n async getGuildWebhooks(guildId) {\n return await rest.get<DiscordWebhook[]>(rest.routes.guilds.webhooks(guildId))\n },\n\n async getIntegrations(guildId) {\n return await rest.get<DiscordIntegration[]>(rest.routes.guilds.integrations(guildId))\n },\n\n async getInvite(inviteCode, options) {\n return await rest.get<DiscordInviteMetadata>(rest.routes.guilds.invite(inviteCode, options))\n },\n\n async getInvites(guildId) {\n return await rest.get<DiscordInviteMetadata[]>(rest.routes.guilds.invites(guildId))\n },\n\n async getMessage(channelId, messageId) {\n return await rest.get<DiscordMessage>(rest.routes.channels.message(channelId, messageId))\n },\n\n async getMessages(channelId, options) {\n return await rest.get<DiscordMessage[]>(rest.routes.channels.messages(channelId, options))\n },\n\n async getNitroStickerPacks() {\n return await rest.get<DiscordStickerPack[]>(rest.routes.nitroStickerPacks())\n },\n\n async getOriginalInteractionResponse(token) {\n return await rest.get<DiscordMessage>(rest.routes.interactions.responses.original(rest.applicationId, token))\n },\n\n async getPinnedMessages(channelId) {\n return await rest.get<DiscordMessage[]>(rest.routes.channels.pins(channelId))\n },\n\n async getPrivateArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.private(channelId, options))\n },\n\n async getPrivateJoinedArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.joined(channelId, options))\n },\n\n async getPruneCount(guildId, options) {\n return await rest.get<DiscordPrunedCount>(rest.routes.guilds.prune(guildId, options))\n },\n\n async getPublicArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.public(channelId, options))\n },\n\n async getRoles(guildId) {\n return await rest.get<DiscordRole[]>(rest.routes.guilds.roles.all(guildId))\n },\n\n async getScheduledEvent(guildId, eventId, options) {\n return await rest.get<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId, options?.withUserCount))\n },\n\n async getScheduledEvents(guildId, options) {\n return await rest.get<DiscordScheduledEvent[]>(rest.routes.guilds.events.events(guildId, options?.withUserCount))\n },\n\n async getScheduledEventUsers(guildId, eventId, options) {\n return await rest.get<Array<{ user: DiscordUser; member?: DiscordMember }>>(rest.routes.guilds.events.users(guildId, eventId, options))\n },\n\n async getSessionInfo() {\n return await rest.getGatewayBot()\n },\n\n async getStageInstance(channelId) {\n return await rest.get<DiscordStageInstance>(rest.routes.channels.stage(channelId))\n },\n\n async getSticker(stickerId: BigString) {\n return await rest.get<DiscordSticker>(rest.routes.sticker(stickerId))\n },\n\n async getGuildSticker(guildId, stickerId) {\n return await rest.get<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId))\n },\n\n async getGuildStickers(guildId) {\n return await rest.get<DiscordSticker[]>(rest.routes.guilds.stickers(guildId))\n },\n\n async getThreadMember(channelId, userId) {\n return await rest.get<DiscordThreadMember>(rest.routes.channels.threads.user(channelId, userId))\n },\n\n async getThreadMembers(channelId) {\n return await rest.get<DiscordThreadMember[]>(rest.routes.channels.threads.members(channelId))\n },\n\n async getReactions(channelId, messageId, reaction, options) {\n return await rest.get<DiscordUser[]>(rest.routes.channels.reactions.message(channelId, messageId, reaction, options))\n },\n\n async getUser(id) {\n return await rest.get<DiscordUser>(rest.routes.user(id))\n },\n\n async getVanityUrl(guildId) {\n return await rest.get<DiscordVanityUrl>(rest.routes.guilds.vanity(guildId))\n },\n\n async getVoiceRegions(guildId) {\n return await rest.get<DiscordVoiceRegion[]>(rest.routes.guilds.regions(guildId))\n },\n\n async getWebhook(webhookId) {\n return await rest.get<DiscordWebhook>(rest.routes.webhooks.id(webhookId))\n },\n\n async getWebhookMessage(webhookId, token, messageId, options) {\n return await rest.get<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options))\n },\n\n async getWebhookWithToken(webhookId, token) {\n return await rest.get<DiscordWebhook>(rest.routes.webhooks.webhook(webhookId, token))\n },\n\n async getWelcomeScreen(guildId) {\n return await rest.get<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId))\n },\n\n async getWidget(guildId) {\n return await rest.get<DiscordGuildWidget>(rest.routes.guilds.widgetJson(guildId))\n },\n\n async getWidgetSettings(guildId) {\n return await rest.get<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId))\n },\n\n async joinThread(channelId) {\n return await rest.put(rest.routes.channels.threads.me(channelId))\n },\n\n async leaveGuild(guildId) {\n return await rest.delete(rest.routes.guilds.leave(guildId))\n },\n\n async leaveThread(channelId) {\n return await rest.delete(rest.routes.channels.threads.me(channelId))\n },\n\n async publishMessage(channelId, messageId) {\n return await rest.post<DiscordMessage>(rest.routes.channels.crosspost(channelId, messageId))\n },\n\n async removeRole(guildId, userId, roleId, reason) {\n return await rest.delete(rest.routes.guilds.roles.member(guildId, userId, roleId), { reason })\n },\n\n async removeThreadMember(channelId, userId) {\n return await rest.delete(rest.routes.channels.threads.user(channelId, userId))\n },\n\n async sendFollowupMessage(token, options) {\n return await new Promise((resolve, reject) => {\n rest.sendRequest({\n url: rest.routes.webhooks.webhook(rest.applicationId, token),\n method: 'POST',\n body: options,\n retryCount: 0,\n retryRequest: async function (options: SendRequestOptions) {\n // TODO: should change to reprocess queue item\n await rest.sendRequest(options)\n },\n resolve: (data) => resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined),\n reject,\n })\n })\n },\n\n async sendInteractionResponse(interactionId, token, options) {\n return await new Promise((resolve, reject) => {\n rest.sendRequest({\n url: rest.routes.interactions.responses.callback(interactionId, token),\n method: 'POST',\n body: options,\n retryCount: 0,\n retryRequest: async function (options: SendRequestOptions) {\n // TODO: should change to reprocess queue item\n await rest.sendRequest(options)\n },\n resolve: (data) => resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined),\n reject,\n })\n })\n },\n\n async sendMessage(channelId, options) {\n return await rest.post<DiscordMessage>(rest.routes.channels.messages(channelId), options)\n },\n\n async startThreadWithMessage(channelId, messageId, options) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.message(channelId, messageId), options)\n },\n\n async startThreadWithoutMessage(channelId, options) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.all(channelId), options)\n },\n\n async syncGuildTemplate(guildId) {\n return await rest.put<DiscordTemplate>(rest.routes.guilds.templates.all(guildId))\n },\n\n async banMember(guildId, userId, options) {\n return await rest.put<void>(rest.routes.guilds.members.ban(guildId, userId), options)\n },\n\n async editBotMember(guildId, options) {\n return await rest.patch<DiscordMember>(rest.routes.guilds.members.bot(guildId), options)\n },\n\n async editMember(guildId, userId, options) {\n return await rest.patch<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId), options)\n },\n\n async getMember(guildId, userId) {\n return await rest.get<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId))\n },\n\n async getMembers(guildId, options) {\n return await rest.get<DiscordMemberWithUser[]>(rest.routes.guilds.members.members(guildId, options))\n },\n\n async kickMember(guildId, userId, reason) {\n return await rest.delete(rest.routes.guilds.members.member(guildId, userId), {\n reason,\n })\n },\n\n async pinMessage(channelId, messageId, reason) {\n return await rest.put(rest.routes.channels.pin(channelId, messageId), reason ? { reason } : undefined)\n },\n\n async pruneMembers(guildId, options) {\n return await rest.post<{ pruned: number | null }>(rest.routes.guilds.members.prune(guildId), options)\n },\n\n async searchMembers(guildId, query, options) {\n return await rest.get<DiscordMemberWithUser[]>(rest.routes.guilds.members.search(guildId, query, options))\n },\n\n async unbanMember(guildId, userId) {\n return await rest.delete(rest.routes.guilds.members.ban(guildId, userId))\n },\n\n async unpinMessage(channelId, messageId, reason) {\n return await rest.delete(rest.routes.channels.pin(channelId, messageId), reason ? { reason } : undefined)\n },\n\n async triggerTypingIndicator(channelId) {\n return await rest.post(rest.routes.channels.typing(channelId))\n },\n\n async upsertGlobalApplicationCommands(commands) {\n return await rest.put<DiscordApplicationCommand[]>(rest.routes.interactions.commands.commands(rest.applicationId), commands)\n },\n\n async upsertGuildApplicationCommands(guildId, commands) {\n return await rest.put<DiscordApplicationCommand[]>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId), commands)\n },\n }\n\n return rest\n}\n"],"names":["InteractionResponseTypes","calculateBits","camelize","camelToSnakeCase","delay","findFiles","getBotIdFromToken","isGetMessagesAfter","isGetMessagesAround","isGetMessagesBefore","isGetMessagesLimit","logger","processReactionString","urlToBase64","createInvalidRequestBucket","Queue","version","createRestManager","options","token","Error","rest","applicationId","BigInt","baseUrl","maxRetryCount","Infinity","globallyRateLimited","processingRateLimitedPaths","deleteQueueDelay","queues","Map","rateLimitedPaths","invalidBucket","routes","webhooks","id","webhookId","message","messageId","url","threadId","original","webhook","wait","undefined","toString","sessionInfo","gatewayBot","channels","bulk","channelId","dm","pin","pins","reactions","bot","emoji","encodeURIComponent","user","userId","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","auditlogs","actionType","automod","rule","ruleId","rules","emojiId","emojis","events","withUserCount","event","eventId","users","withMember","guild","withCounts","integration","integrationId","integrations","invite","inviteCode","withExpiration","scheduledEventId","leave","ban","bans","member","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","commandId","withLocalizations","permissions","permission","command","responses","callback","interactionId","userBot","oauth2Application","nitroStickerPacks","checkRateLimits","ratelimited","get","global","now","resetTimestamp","changeToDiscordFormat","obj","map","item","newObj","key","Object","keys","includes","default_member_permissions","createRequest","headers","unauthorized","authorization","toLowerCase","method","body","reason","file","files","form","FormData","endsWith","append","blob","name","description","tags","i","length","JSON","stringify","processRateLimitedPaths","value","entries","delete","size","setTimeout","processHeaders","rateLimited","remaining","retryAfter","reset","Number","bucketId","handleCompletedRequest","interval","max","set","globalReset","sendRequest","startsWith","payload","debug","response","fetch","status","statusText","simplifyUrl","retryCount","reject","ok","error","resetAfter","json","retryRequest","is204","resolve","route","replace","match","p","substring","indexOf","processRequest","request","parts","split","shift","queue","makeRequest","bucketQueue","Promise","data","parse","post","patch","put","addReaction","reaction","addReactions","ordered","addRole","addThreadMember","createAutomodRule","createChannel","createEmoji","createGlobalApplicationCommand","createGuild","createGuildApplicationCommand","createGuildFromTemplate","templateCode","icon","createGuildSticker","createGuildTemplate","createForumThread","createInvite","createRole","createScheduledEvent","createStageInstance","createWebhook","avatar","deleteAutomodRule","deleteChannel","deleteChannelPermissionOverride","deleteEmoji","deleteFollowupMessage","deleteGlobalApplicationCommand","deleteGuild","deleteGuildApplicationCommand","deleteGuildSticker","deleteGuildTemplate","deleteIntegration","deleteInvite","deleteMessage","deleteMessages","messageIds","slice","deleteOriginalInteractionResponse","deleteOwnReaction","deleteReactionsAll","deleteReactionsEmoji","deleteRole","deleteScheduledEvent","deleteStageInstance","deleteUserReaction","deleteWebhook","deleteWebhookMessage","deleteWebhookWithToken","editApplicationCommandPermissions","bearerToken","editAutomodRule","editBotProfile","botAvatarURL","username","trim","editChannel","editChannelPermissionOverrides","editChannelPositions","channelPositions","editEmoji","editFollowupMessage","editGlobalApplicationCommand","editGuild","editGuildApplicationCommand","editGuildMfaLevel","mfaLevel","level","editGuildSticker","editGuildTemplate","editMessage","editOriginalInteractionResponse","editOriginalWebhookMessage","type","UpdateMessage","editOwnVoiceState","channel_id","suppress","request_to_speak_timestamp","requestToSpeakTimestamp","editScheduledEvent","editRole","editRolePositions","editStageInstance","topic","editUserVoiceState","user_id","editWebhook","editWebhookMessage","editWebhookWithToken","editWelcomeScreen","editWidgetSettings","executeWebhook","followAnnouncement","sourceChannelId","targetChannelId","webhook_channel_id","getActiveThreads","getApplicationCommandPermission","getApplicationCommandPermissions","getApplicationInfo","getAuditLog","getAutomodRule","getAutomodRules","getAvailableVoiceRegions","getBan","getBans","getChannel","getChannelInvites","getChannels","getChannelWebhooks","getDmChannel","recipient_id","getEmoji","getEmojis","getFollowupMessage","getGatewayBot","getGlobalApplicationCommand","getGlobalApplicationCommands","getGuild","counts","getGuildApplicationCommand","getGuildApplicationCommands","getGuildPreview","getGuildTemplate","getGuildTemplates","getGuildWebhooks","getIntegrations","getInvite","getInvites","getMessage","getMessages","getNitroStickerPacks","getOriginalInteractionResponse","getPinnedMessages","getPrivateArchivedThreads","getPrivateJoinedArchivedThreads","getPruneCount","getPublicArchivedThreads","getRoles","getScheduledEvent","getScheduledEvents","getScheduledEventUsers","getSessionInfo","getStageInstance","getSticker","getGuildSticker","getGuildStickers","getThreadMember","getThreadMembers","getReactions","getUser","getVanityUrl","getVoiceRegions","getWebhook","getWebhookMessage","getWebhookWithToken","getWelcomeScreen","getWidget","getWidgetSettings","joinThread","leaveGuild","leaveThread","publishMessage","removeRole","removeThreadMember","sendFollowupMessage","sendInteractionResponse","sendMessage","startThreadWithMessage","startThreadWithoutMessage","syncGuildTemplate","banMember","editBotMember","editMember","getMember","getMembers","kickMember","pinMessage","pruneMembers","searchMembers","unbanMember","unpinMessage","triggerTypingIndicator","upsertGlobalApplicationCommands","upsertGuildApplicationCommands"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/manager.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable no-const-assign */\nimport { InteractionResponseTypes } from '@discordeno/types'\nimport {\n calculateBits,\n camelize,\n camelToSnakeCase,\n delay,\n encode,\n getBotIdFromToken,\n isGetMessagesAfter,\n isGetMessagesAround,\n isGetMessagesBefore,\n isGetMessagesLimit,\n logger,\n processReactionString,\n urlToBase64,\n} from '@discordeno/utils'\nimport fetch from 'node-fetch'\n\nimport { createInvalidRequestBucket } from './invalidBucket.js'\nimport { Queue } from './queue.js'\n\nimport type {\n BigString,\n Camelize,\n DiscordApplication,\n DiscordApplicationCommand,\n DiscordApplicationCommandPermissions,\n DiscordAuditLog,\n DiscordAutoModerationRule,\n DiscordBan,\n DiscordChannel,\n DiscordEmoji,\n DiscordFollowedChannel,\n DiscordGetGatewayBot,\n DiscordGuild,\n DiscordGuildPreview,\n DiscordGuildWidget,\n DiscordGuildWidgetSettings,\n DiscordIntegration,\n DiscordInvite,\n DiscordInviteMetadata,\n DiscordListActiveThreads,\n DiscordListArchivedThreads,\n DiscordMember,\n DiscordMemberWithUser,\n DiscordMessage,\n DiscordPrunedCount,\n DiscordRole,\n DiscordScheduledEvent,\n DiscordStageInstance,\n DiscordSticker,\n DiscordStickerPack,\n DiscordTemplate,\n DiscordThreadMember,\n DiscordUser,\n DiscordVanityUrl,\n DiscordVoiceRegion,\n DiscordWebhook,\n DiscordWelcomeScreen,\n FileContent,\n GetMessagesOptions,\n GetScheduledEventUsers,\n MfaLevels,\n ModifyGuildTemplate,\n} from '@discordeno/types'\nimport type { CreateRequestBodyOptions, CreateRestManagerOptions, RestManager, SendRequestOptions } from './types.js'\n\n// TODO: make dynamic based on package.json file\nconst version = '19.0.0-alpha.1'\nconst URL_PARTS_REGEX = /([a-z]+)\\/(?:[0-9]{17,}(\\/@me)?)/g\n\nexport function createRestManager(options: CreateRestManagerOptions): RestManager {\n // Falsy token string check\n if (!options.token) throw new Error('You must provide a valid token.')\n\n const rest: RestManager = {\n token: options.token,\n applicationId: options.applicationId ? BigInt(options.applicationId) : getBotIdFromToken(options.token),\n version: options.version ?? 10,\n baseUrl: options.proxy?.baseUrl ?? 'https://discord.com/api',\n maxRetryCount: Infinity,\n globallyRateLimited: false,\n processingRateLimitedPaths: false,\n deleteQueueDelay: 60000,\n queues: new Map(),\n rateLimitedPaths: new Map(),\n invalidBucket: createInvalidRequestBucket({}),\n authorization: options.proxy?.authorization,\n\n routes: {\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 // Miscellaneous Endpoints\n sessionInfo: () => rest.routes.gatewayBot(),\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 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 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 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: BigString) => {\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 // User endpoints\n user(userId) {\n return `/users/${userId}`\n },\n\n userBot() {\n return '/users/@me'\n },\n\n oauth2Application() {\n return 'oauth2/applications/@me'\n },\n\n gatewayBot() {\n return '/gateway/bot'\n },\n\n nitroStickerPacks() {\n return '/sticker-packs'\n },\n },\n\n checkRateLimits(url) {\n const ratelimited = rest.rateLimitedPaths.get(url)\n const global = rest.rateLimitedPaths.get('global')\n const now = Date.now()\n\n if (ratelimited && now < ratelimited.resetTimestamp) {\n return ratelimited.resetTimestamp - now\n }\n\n if (global && now < global.resetTimestamp) {\n return global.resetTimestamp - now\n }\n\n return false\n },\n\n changeToDiscordFormat(obj: any): any {\n if (obj === null) return null\n\n if (typeof obj === 'object') {\n if (Array.isArray(obj)) {\n return obj.map((item) => rest.changeToDiscordFormat(item))\n }\n\n const newObj: any = {}\n\n for (const key of Object.keys(obj)) {\n // Keys that dont require snake casing\n if (['permissions', 'allow', 'deny'].includes(key)) {\n newObj[key] = calculateBits(obj[key])\n continue\n }\n\n if (key === 'defaultMemberPermissions') {\n newObj.default_member_permissions = calculateBits(obj[key])\n continue\n }\n\n newObj[camelToSnakeCase(key)] = rest.changeToDiscordFormat(obj[key])\n }\n\n return newObj\n }\n\n if (typeof obj === 'bigint') return obj.toString()\n\n return obj\n },\n\n createRequest(options) {\n const headers: Record<string, string> = {\n 'user-agent': `DiscordBot (https://github.com/discordeno/discordeno, v${version})`,\n }\n\n if (!options.unauthorized) headers.authorization = `Bot ${rest.token}`\n\n // IF A REASON IS PROVIDED ENCODE IT IN HEADERS\n if (options.reason !== undefined) {\n headers['x-audit-log-reason'] = encodeURIComponent(options.reason)\n }\n\n let body: string | FormData | undefined\n\n // TODO: check if we need to add specific check for GET method\n // Since GET does not allow bodies\n\n // Have to check for attachments first, since body then has to be send in a different way.\n if (options.attachments !== undefined) {\n const form = new FormData()\n for (let i = 0; i < options.attachments.length; ++i) {\n form.append(`file${i}`, options.attachments[i].blob, options.attachments[i].name)\n }\n\n form.append('payload_json', JSON.stringify(options.body))\n\n body = form\n\n // TODO: boundary?\n // `multipart/form-data; boundary=${form.getBoundary()}`\n headers['content-type'] = `multipart/form-data`\n } else if (options.body !== undefined) {\n if (options.body instanceof FormData) {\n body = options.body\n headers['content-type'] = `multipart/form-data`\n } else {\n body = JSON.stringify(options.body)\n headers['content-type'] = `application/json`\n }\n }\n\n // SOMETIMES SPECIAL HEADERS (E.G. CUSTOM AUTHORIZATION) NEED TO BE USED\n if (options.headers) {\n Object.assign(headers, options.headers)\n }\n\n return {\n body,\n headers,\n method: options.method,\n }\n },\n\n processRateLimitedPaths() {\n const now = Date.now()\n\n for (const [key, value] of rest.rateLimitedPaths.entries()) {\n // rest.debug(\n // `[REST - processRateLimitedPaths] Running for of loop. ${\n // value.resetTimestamp - now\n // }`\n // )\n // If the time has not reached cancel\n if (value.resetTimestamp > now) continue\n\n // Rate limit is over, delete the rate limiter\n rest.rateLimitedPaths.delete(key)\n // If it was global, also mark the global value as false\n if (key === 'global') rest.globallyRateLimited = false\n }\n\n // ALL PATHS ARE CLEARED CAN CANCEL OUT!\n if (rest.rateLimitedPaths.size === 0) {\n rest.processingRateLimitedPaths = false\n } else {\n rest.processingRateLimitedPaths = true\n // RECHECK IN 1 SECOND\n setTimeout(() => {\n // rest.debug('[REST - processRateLimitedPaths] Running setTimeout.')\n rest.processRateLimitedPaths()\n }, 1000)\n }\n },\n\n /** Processes the rate limit headers and determines if it needs to be rate limited and returns the bucket id if available */\n processHeaders(url, headers) {\n let rateLimited = false\n\n // GET ALL NECESSARY HEADERS\n const remaining = headers.get('x-ratelimit-remaining')\n const retryAfter = headers.get('x-ratelimit-reset-after')\n const reset = Date.now() + Number(retryAfter) * 1000\n const global = headers.get('x-ratelimit-global')\n // undefined override null needed for typings\n const bucketId = headers.get('x-ratelimit-bucket') ?? undefined\n const limit = headers.get('x-ratelimit-limit')\n\n rest.queues.get(url)?.handleCompletedRequest({\n remaining: remaining ? Number(remaining) : undefined,\n interval: retryAfter ? Number(retryAfter) * 1000 : undefined,\n max: limit ? Number(limit) : undefined,\n })\n\n // IF THERE IS NO REMAINING RATE LIMIT, MARK IT AS RATE LIMITED\n if (remaining === '0') {\n rateLimited = true\n\n // SAVE THE URL AS LIMITED, IMPORTANT FOR NEW REQUESTS BY USER WITHOUT BUCKET\n rest.rateLimitedPaths.set(url, {\n url,\n resetTimestamp: reset,\n bucketId,\n })\n\n // SAVE THE BUCKET AS LIMITED SINCE DIFFERENT URLS MAY SHARE A BUCKET\n if (bucketId) {\n rest.rateLimitedPaths.set(bucketId, {\n url,\n resetTimestamp: reset,\n bucketId,\n })\n }\n }\n\n // IF THERE IS NO REMAINING GLOBAL LIMIT, MARK IT RATE LIMITED GLOBALLY\n if (global) {\n const retryAfter = headers.get('retry-after')\n const globalReset = Date.now() + Number(retryAfter) * 1000\n // rest.debug(\n // `[REST = Globally Rate Limited] URL: ${url} | Global Rest: ${globalReset}`\n // )\n rest.globallyRateLimited = true\n rateLimited = true\n\n setTimeout(() => {\n rest.globallyRateLimited = false\n }, globalReset)\n\n rest.rateLimitedPaths.set('global', {\n url: 'global',\n resetTimestamp: globalReset,\n bucketId,\n })\n\n if (bucketId) {\n rest.rateLimitedPaths.set(bucketId, {\n url: 'global',\n resetTimestamp: globalReset,\n bucketId,\n })\n }\n }\n\n if (rateLimited && !rest.processingRateLimitedPaths) {\n rest.processRateLimitedPaths()\n }\n return rateLimited ? bucketId : undefined\n },\n\n async sendRequest(options) {\n const url = options.url.startsWith('https://') ? options.url : `${rest.baseUrl}/v${rest.version}${options.url}`\n const payload = rest.createRequest({ method: options.method, url: options.url, body: options.options?.body, ...options.options })\n\n logger.debug(`sending request to ${url}`, 'with payload:', { ...payload, headers: { ...payload.headers, authorization: 'Bot tokenhere' } })\n const response = await fetch(url, payload)\n logger.debug(`request fetched from ${url} with status ${response.status} & ${response.statusText}`)\n\n // Set the bucket id if it was available on the headers\n const bucketId = rest.processHeaders(rest.simplifyUrl(options.url, options.method), response.headers)\n if (bucketId) options.bucketId = bucketId\n\n if (response.status < 200 || response.status >= 400) {\n logger.debug(`Request to ${url} failed.`)\n\n if (response.status === 429) {\n logger.debug(`Request to ${url} was ratelimited.`)\n // Too many attempts, get rid of request from queue.\n if (options.retryCount++ >= rest.maxRetryCount) {\n logger.debug(`Request to ${url} exceeded the maximum allowed retries.`, 'with payload:', payload)\n // rest.debug(`[REST - RetriesMaxed] ${JSON.stringify(options)}`)\n // Remove item from queue to prevent retry\n options.reject({\n ok: false,\n status: response.status,\n error: 'The options was rate limited and it maxed out the retries limit.',\n })\n return\n }\n\n // Rate limited, add back to queue\n rest.invalidBucket.handleCompletedRequest(response.status, response.headers.get('X-RateLimit-Scope') === 'shared')\n\n const resetAfter = response.headers.get('x-ratelimit-reset-after')\n if (resetAfter) await delay(Number(resetAfter) * 1000)\n // process the response to prevent mem leak\n await response.json()\n\n return await options.retryRequest?.(options)\n }\n\n options.reject({ ok: false, status: response.status, body: JSON.stringify(await response.json()) })\n return\n }\n\n const is204 = response.status === 204\n const json = is204 ? undefined : await response.json()\n // Discord sometimes sends no response with 204 code\n options.resolve({ ok: true, status: response.status, body: JSON.stringify(json) })\n },\n\n // Credits: github.com/abalabahaha/eris lib/rest/RequestHandler.js#L397\n // Modified for our use-case\n simplifyUrl(url, method) {\n let route = url.replace(URL_PARTS_REGEX, function (match, pattern: string) {\n if (pattern.startsWith('channels') || pattern.startsWith('guilds')) {\n return match\n }\n\n // GENERAL /reactions and /reactions/emoji/@me share the buckets\n if (pattern.startsWith('reactions')) {\n return 'reactions'\n }\n\n return `${pattern}/x`\n })\n\n if (route.includes('/reactions')) {\n // 10 is the length of `/reactions`\n route = route.substring(0, route.indexOf('/reactions') + 10)\n }\n\n // Delete Message endpoint has its own rate limit\n if (method === 'DELETE' && route.endsWith('/messages/x')) {\n route = 'D' + route\n }\n\n return route\n },\n\n processRequest(request: SendRequestOptions) {\n const route = request.url.substring(request.url.indexOf('api/'))\n const parts = route.split('/')\n // Remove the api/\n parts.shift()\n // Removes the /v#/\n if (parts[0]?.startsWith('v')) parts.shift()\n // Set the full url to discord api in case it was recieved in a proxy rest\n request.url = `${rest.baseUrl}/v${rest.version}/${parts.join('/')}`\n\n const url = rest.simplifyUrl(request.url, request.method)\n const queue = rest.queues.get(url)\n\n if (queue !== undefined) {\n queue.makeRequest(request)\n } else {\n // CREATES A NEW QUEUE\n const bucketQueue = new Queue(rest, { url, deleteQueueDelay: rest.deleteQueueDelay })\n\n // Add request to queue\n bucketQueue.makeRequest(request)\n // Save queue\n rest.queues.set(url, bucketQueue)\n }\n },\n\n async makeRequest(method, url, options) {\n if (!rest.baseUrl.startsWith('https://discord.com') && url[0] === '/') {\n // Special handling for sending blobs across http to proxy\n // TODO: fix this hacky handling\n if (!(options?.body instanceof FormData) && !Array.isArray(options?.body) && options?.body?.file) {\n if (!Array.isArray(options.body.file)) {\n options.body.file = [options.body.file]\n }\n // convert blobs to string before sending to proxy\n options.body.file = await Promise.all(\n (options.body.file as FileContent[]).map(async (f: FileContent) => {\n const url = encode(await f.blob.arrayBuffer())\n\n return { name: f.name, blob: `data:${f.blob.type};base64,${url}` }\n }),\n )\n }\n\n const headers: HeadersInit = {\n Authorization: rest.authorization ?? '',\n }\n if (options?.body) {\n headers['Content-Type'] = 'application/json'\n }\n\n const result = await fetch(`${rest.baseUrl}${url}`, {\n body: options?.body ? JSON.stringify(options.body) : undefined,\n headers,\n method,\n })\n\n if (!result.ok) {\n const err = (await result.json().catch(() => {})) as Record<string, any>\n // Legacy Handling to not break old code or when body is missing\n if (!err?.body) throw new Error(`Error: ${err.message ?? result.statusText}`)\n throw new Error(JSON.stringify(err))\n }\n\n return result.status !== 204 ? ((await result.json()) as any) : undefined\n }\n\n return await new Promise((resolve, reject) => {\n const payload: SendRequestOptions = {\n url,\n method,\n options,\n retryCount: 0,\n retryRequest: async function (payload: SendRequestOptions) {\n rest.processRequest(payload)\n },\n resolve: (data) => {\n resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined)\n },\n reject,\n }\n\n rest.processRequest(payload)\n })\n },\n\n async get<T = Record<string, unknown>>(url: string, body?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('GET', url, { body })) as Camelize<T>\n },\n\n async post<T = Record<string, unknown>>(url: string, body?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('POST', url, { body })) as Camelize<T>\n },\n\n async delete(url: string, body?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n camelize(await rest.makeRequest('DELETE', url, { body }))\n },\n\n async patch<T = Record<string, unknown>>(url: string, body?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PATCH', url, { body })) as Camelize<T>\n },\n\n async put<T = void>(url: string, body?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PUT', url, { body })) as Camelize<T>\n },\n\n async addReaction(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n await rest.put(rest.routes.channels.reactions.bot(channelId, messageId, reaction))\n },\n\n async addReactions(channelId, messageId, reactions, ordered = false) {\n if (!ordered) {\n await Promise.all(\n reactions.map(async (reaction) => {\n await rest.addReaction(channelId, messageId, reaction)\n }),\n )\n return\n }\n\n for (const reaction of reactions) {\n await rest.addReaction(channelId, messageId, reaction)\n }\n },\n\n async addRole(guildId, userId, roleId, reason) {\n await rest.put(rest.routes.guilds.roles.member(guildId, userId, roleId), { reason })\n },\n\n async addThreadMember(channelId, userId) {\n await rest.put(rest.routes.channels.threads.user(channelId, userId))\n },\n\n async createAutomodRule(guildId, body) {\n return await rest.post<DiscordAutoModerationRule>(rest.routes.guilds.automod.rules(guildId), { body })\n },\n\n async createChannel(guildId, body) {\n return await rest.post<DiscordChannel>(rest.routes.guilds.channels(guildId), { body })\n },\n\n async createEmoji(guildId, body) {\n return await rest.post<DiscordEmoji>(rest.routes.guilds.emojis(guildId), { body })\n },\n\n async createGlobalApplicationCommand(body) {\n return await rest.post<DiscordApplicationCommand>(rest.routes.interactions.commands.commands(rest.applicationId), { body })\n },\n\n async createGuild(body) {\n return await rest.post<DiscordGuild>(rest.routes.guilds.all(), { body })\n },\n\n async createGuildApplicationCommand(body, guildId) {\n return await rest.post<DiscordApplicationCommand>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId), { body })\n },\n\n async createGuildFromTemplate(templateCode, body) {\n if (body.icon) {\n body.icon = await urlToBase64(body.icon)\n }\n\n return await rest.post<DiscordGuild>(rest.routes.guilds.templates.code(templateCode), { body })\n },\n\n async createGuildSticker(guildId, options) {\n const form = new FormData()\n form.append('file', options.file.blob, options.file.name)\n form.append('name', options.name)\n form.append('description', options.description)\n form.append('tags', options.tags)\n\n return await rest.post<DiscordSticker>(rest.routes.guilds.stickers(guildId), { body: form })\n },\n\n async createGuildTemplate(guildId, body) {\n return await rest.post<DiscordTemplate>(rest.routes.guilds.templates.all(guildId), { body })\n },\n\n async createForumThread(channelId, body) {\n return await rest.post<DiscordChannel>(rest.routes.channels.forum(channelId), { body })\n },\n\n async createInvite(channelId, body = {}) {\n return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), { body })\n },\n\n async createRole(guildId, body, reason) {\n return await rest.post<DiscordRole>(rest.routes.guilds.roles.all(guildId), { body, reason })\n },\n\n async createScheduledEvent(guildId, body) {\n return await rest.post<DiscordScheduledEvent>(rest.routes.guilds.events.events(guildId), { body })\n },\n\n async createStageInstance(body) {\n return await rest.post<DiscordStageInstance>(rest.routes.channels.stages(), { body })\n },\n\n async createWebhook(channelId, options, reason) {\n return await rest.post<DiscordWebhook>(rest.routes.channels.webhooks(channelId), {\n body: {\n name: options.name,\n avatar: options.avatar ? await urlToBase64(options.avatar) : undefined,\n },\n reason,\n })\n },\n\n async deleteAutomodRule(guildId, ruleId, reason) {\n await rest.delete(rest.routes.guilds.automod.rule(guildId, ruleId), { reason })\n },\n\n async deleteChannel(channelId, reason) {\n await rest.delete(rest.routes.channels.channel(channelId), {\n reason,\n })\n },\n\n async deleteChannelPermissionOverride(channelId, overwriteId, reason) {\n await rest.delete(rest.routes.channels.overwrite(channelId, overwriteId), { reason })\n },\n\n async deleteEmoji(guildId, id, reason) {\n await rest.delete(rest.routes.guilds.emoji(guildId, id), { reason })\n },\n\n async deleteFollowupMessage(token, messageId) {\n await rest.delete(rest.routes.interactions.responses.message(rest.applicationId, token, messageId))\n },\n\n async deleteGlobalApplicationCommand(commandId) {\n await rest.delete(rest.routes.interactions.commands.command(rest.applicationId, commandId))\n },\n\n async deleteGuild(guildId) {\n await rest.delete(rest.routes.guilds.guild(guildId))\n },\n\n async deleteGuildApplicationCommand(commandId, guildId) {\n await rest.delete(rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId))\n },\n\n async deleteGuildSticker(guildId, stickerId, reason) {\n await rest.delete(rest.routes.guilds.sticker(guildId, stickerId), { reason })\n },\n\n async deleteGuildTemplate(guildId, templateCode) {\n await rest.delete(rest.routes.guilds.templates.guild(guildId, templateCode))\n },\n\n async deleteIntegration(guildId, integrationId) {\n await rest.delete(rest.routes.guilds.integration(guildId, integrationId))\n },\n\n async deleteInvite(inviteCode, reason) {\n await rest.delete(rest.routes.guilds.invite(inviteCode), { reason })\n },\n\n async deleteMessage(channelId, messageId, reason) {\n await rest.delete(rest.routes.channels.message(channelId, messageId), { reason })\n },\n\n async deleteMessages(channelId, messageIds, reason) {\n await rest.post(rest.routes.channels.bulk(channelId), {\n body: {\n messages: messageIds.slice(0, 100).map((id) => id.toString()),\n },\n reason,\n })\n },\n\n async deleteOriginalInteractionResponse(token) {\n await rest.delete(rest.routes.interactions.responses.original(rest.applicationId, token))\n },\n\n async deleteOwnReaction(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n await rest.delete(rest.routes.channels.reactions.bot(channelId, messageId, reaction))\n },\n\n async deleteReactionsAll(channelId, messageId) {\n await rest.delete(rest.routes.channels.reactions.all(channelId, messageId))\n },\n\n async deleteReactionsEmoji(channelId, messageId, reaction) {\n reaction = processReactionString(reaction)\n\n await rest.delete(rest.routes.channels.reactions.emoji(channelId, messageId, reaction))\n },\n\n async deleteRole(guildId, roleId) {\n await rest.delete(rest.routes.guilds.roles.one(guildId, roleId))\n },\n\n async deleteScheduledEvent(guildId, eventId) {\n await rest.delete(rest.routes.guilds.events.event(guildId, eventId))\n },\n\n async deleteStageInstance(channelId, reason) {\n await rest.delete(rest.routes.channels.stage(channelId), { reason })\n },\n\n async deleteUserReaction(channelId, messageId, userId, reaction) {\n reaction = processReactionString(reaction)\n\n await rest.delete(rest.routes.channels.reactions.user(channelId, messageId, reaction, userId))\n },\n\n async deleteWebhook(webhookId, reason) {\n await rest.delete(rest.routes.webhooks.id(webhookId), { reason })\n },\n\n async deleteWebhookMessage(webhookId, token, messageId, options) {\n await rest.delete(rest.routes.webhooks.message(webhookId, token, messageId, options))\n },\n\n async deleteWebhookWithToken(webhookId, token) {\n await rest.delete(rest.routes.webhooks.webhook(webhookId, token))\n },\n\n async editApplicationCommandPermissions(guildId, commandId, bearerToken, permissions) {\n return await rest.put<DiscordApplicationCommandPermissions>(\n rest.routes.interactions.commands.permission(rest.applicationId, guildId, commandId),\n {\n body: {\n permissions,\n },\n headers: { authorization: `Bearer ${bearerToken}` },\n },\n )\n },\n\n async editAutomodRule(guildId, ruleId, body) {\n return await rest.patch<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId), { body })\n },\n\n async editBotProfile(options) {\n const avatar = options?.botAvatarURL ? await urlToBase64(options?.botAvatarURL) : options?.botAvatarURL\n\n return await rest.patch<DiscordUser>(rest.routes.userBot(), {\n body: {\n username: options.username?.trim(),\n avatar,\n },\n })\n },\n\n async editChannel(channelId, body) {\n return await rest.patch<DiscordChannel>(rest.routes.channels.channel(channelId), { body })\n },\n\n async editChannelPermissionOverrides(channelId, body) {\n await rest.put(rest.routes.channels.overwrite(channelId, body.id), { body })\n },\n\n async editChannelPositions(guildId, body) {\n await rest.patch(rest.routes.guilds.channels(guildId), { body })\n },\n\n async editEmoji(guildId, id, body) {\n return await rest.patch<DiscordEmoji>(rest.routes.guilds.emoji(guildId, id), { body })\n },\n\n async editFollowupMessage(token, messageId, body) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId), { body })\n },\n\n async editGlobalApplicationCommand(commandId, body) {\n return await rest.patch<DiscordApplicationCommand>(rest.routes.interactions.commands.command(rest.applicationId, commandId), { body })\n },\n\n async editGuild(guildId, body) {\n return await rest.patch<DiscordGuild>(rest.routes.guilds.guild(guildId), { body })\n },\n\n async editGuildApplicationCommand(commandId, guildId, body) {\n return await rest.patch<DiscordApplicationCommand>(rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId), {\n body,\n })\n },\n\n async editGuildMfaLevel(guildId: BigString, mfaLevel: MfaLevels, reason?: string): Promise<void> {\n await rest.post(rest.routes.guilds.mfa(guildId), { body: { level: mfaLevel }, reason })\n },\n\n async editGuildSticker(guildId, stickerId, body) {\n return await rest.patch<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId), { body })\n },\n\n async editGuildTemplate(guildId, templateCode: string, body: ModifyGuildTemplate): Promise<Camelize<DiscordTemplate>> {\n return await rest.patch<DiscordTemplate>(rest.routes.guilds.templates.guild(guildId, templateCode), { body })\n },\n\n async editMessage(channelId, messageId, body) {\n return await rest.patch<DiscordMessage>(rest.routes.channels.message(channelId, messageId), { body })\n },\n\n async editOriginalInteractionResponse(token, body) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.original(rest.applicationId, token), { body })\n },\n\n async editOriginalWebhookMessage(webhookId, token, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.original(webhookId, token, options), {\n body: {\n type: InteractionResponseTypes.UpdateMessage,\n data: options,\n },\n })\n },\n\n async editOwnVoiceState(guildId, options) {\n await rest.patch(rest.routes.guilds.voice(guildId), {\n body: {\n ...options,\n request_to_speak_timestamp: options.requestToSpeakTimestamp\n ? new Date(options.requestToSpeakTimestamp).toISOString()\n : options.requestToSpeakTimestamp,\n },\n })\n },\n\n async editScheduledEvent(guildId, eventId, body) {\n return await rest.patch<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId), { body })\n },\n\n async editRole(guildId, roleId, body) {\n return await rest.patch<DiscordRole>(rest.routes.guilds.roles.one(guildId, roleId), { body })\n },\n\n async editRolePositions(guildId, body) {\n return await rest.patch<DiscordRole[]>(rest.routes.guilds.roles.all(guildId), { body })\n },\n\n async editStageInstance(channelId, topic, reason?: string) {\n return await rest.patch<DiscordStageInstance>(rest.routes.channels.stage(channelId), { body: { topic }, reason })\n },\n\n async editUserVoiceState(guildId, options) {\n await rest.patch(rest.routes.guilds.voice(guildId, options.userId), { body: options })\n },\n\n async editWebhook(webhookId, body) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.id(webhookId), { body })\n },\n\n async editWebhookMessage(webhookId, token, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options), { body: options })\n },\n\n async editWebhookWithToken(webhookId, token, body) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.webhook(webhookId, token), { body })\n },\n\n async editWelcomeScreen(guildId, body) {\n return await rest.patch<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId), { body })\n },\n\n async editWidgetSettings(guildId, body) {\n return await rest.patch<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId), { body })\n },\n\n async executeWebhook(webhookId, token, options) {\n return await rest.post<DiscordMessage>(rest.routes.webhooks.webhook(webhookId, token, options), { body: options })\n },\n\n async followAnnouncement(sourceChannelId, targetChannelId) {\n return await rest.post<DiscordFollowedChannel>(rest.routes.channels.follow(sourceChannelId), {\n body: {\n webhook_channel_id: targetChannelId,\n },\n })\n },\n\n async getActiveThreads(guildId) {\n return await rest.get<DiscordListActiveThreads>(rest.routes.channels.threads.active(guildId))\n },\n\n async getApplicationCommandPermission(guildId, commandId) {\n return await rest.get<DiscordApplicationCommandPermissions>(\n rest.routes.interactions.commands.permission(rest.applicationId, guildId, commandId),\n )\n },\n\n async getApplicationCommandPermissions(guildId) {\n return await rest.get<DiscordApplicationCommandPermissions[]>(rest.routes.interactions.commands.permissions(rest.applicationId, guildId))\n },\n\n async getApplicationInfo() {\n return await rest.get<DiscordApplication>(rest.routes.oauth2Application())\n },\n\n async getAuditLog(guildId, options) {\n return await rest.get<DiscordAuditLog>(rest.routes.guilds.auditlogs(guildId, options))\n },\n\n async getAutomodRule(guildId, ruleId) {\n return await rest.get<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId))\n },\n\n async getAutomodRules(guildId) {\n return await rest.get<DiscordAutoModerationRule[]>(rest.routes.guilds.automod.rules(guildId))\n },\n\n async getAvailableVoiceRegions() {\n return await rest.get<DiscordVoiceRegion[]>(rest.routes.regions())\n },\n\n async getBan(guildId, userId) {\n return await rest.get<DiscordBan>(rest.routes.guilds.members.ban(guildId, userId))\n },\n\n async getBans(guildId, options) {\n return await rest.get<DiscordBan[]>(rest.routes.guilds.members.bans(guildId, options))\n },\n\n async getChannel(id) {\n return await rest.get<DiscordChannel>(rest.routes.channels.channel(id))\n },\n\n async getChannelInvites(channelId) {\n return await rest.get<DiscordInviteMetadata[]>(rest.routes.channels.invites(channelId))\n },\n\n async getChannels(guildId) {\n return await rest.get<DiscordChannel[]>(rest.routes.guilds.channels(guildId))\n },\n\n async getChannelWebhooks(channelId) {\n return await rest.get<DiscordWebhook[]>(rest.routes.channels.webhooks(channelId))\n },\n\n async getDmChannel(userId) {\n return await rest.post<DiscordChannel>(rest.routes.channels.dm(), {\n body: { recipient_id: userId },\n })\n },\n\n async getEmoji(guildId, emojiId) {\n return await rest.get<DiscordEmoji>(rest.routes.guilds.emoji(guildId, emojiId))\n },\n\n async getEmojis(guildId) {\n return await rest.get<DiscordEmoji[]>(rest.routes.guilds.emojis(guildId))\n },\n\n async getFollowupMessage(token, messageId) {\n return await rest.get<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId))\n },\n\n async getGatewayBot() {\n return await rest.get<DiscordGetGatewayBot>(rest.routes.gatewayBot())\n },\n\n async getGlobalApplicationCommand(commandId) {\n return await rest.get<DiscordApplicationCommand>(rest.routes.interactions.commands.command(rest.applicationId, commandId))\n },\n\n async getGlobalApplicationCommands() {\n return await rest.get<DiscordApplicationCommand[]>(rest.routes.interactions.commands.commands(rest.applicationId))\n },\n\n async getGuild(guildId, options = { counts: true }) {\n return await rest.get<DiscordGuild>(rest.routes.guilds.guild(guildId, options.counts))\n },\n\n async getGuildApplicationCommand(commandId, guildId) {\n return await rest.get<DiscordApplicationCommand>(rest.routes.interactions.commands.guilds.one(rest.applicationId, guildId, commandId))\n },\n\n async getGuildApplicationCommands(guildId) {\n return await rest.get<DiscordApplicationCommand[]>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId))\n },\n\n async getGuildPreview(guildId) {\n return await rest.get<DiscordGuildPreview>(rest.routes.guilds.preview(guildId))\n },\n\n async getGuildTemplate(templateCode) {\n return await rest.get<DiscordTemplate>(rest.routes.guilds.templates.code(templateCode))\n },\n\n async getGuildTemplates(guildId) {\n return await rest.get<DiscordTemplate[]>(rest.routes.guilds.templates.all(guildId))\n },\n\n async getGuildWebhooks(guildId) {\n return await rest.get<DiscordWebhook[]>(rest.routes.guilds.webhooks(guildId))\n },\n\n async getIntegrations(guildId) {\n return await rest.get<DiscordIntegration[]>(rest.routes.guilds.integrations(guildId))\n },\n\n async getInvite(inviteCode, options) {\n return await rest.get<DiscordInviteMetadata>(rest.routes.guilds.invite(inviteCode, options))\n },\n\n async getInvites(guildId) {\n return await rest.get<DiscordInviteMetadata[]>(rest.routes.guilds.invites(guildId))\n },\n\n async getMessage(channelId, messageId) {\n return await rest.get<DiscordMessage>(rest.routes.channels.message(channelId, messageId))\n },\n\n async getMessages(channelId, options) {\n return await rest.get<DiscordMessage[]>(rest.routes.channels.messages(channelId, options))\n },\n\n async getNitroStickerPacks() {\n return await rest.get<DiscordStickerPack[]>(rest.routes.nitroStickerPacks())\n },\n\n async getOriginalInteractionResponse(token) {\n return await rest.get<DiscordMessage>(rest.routes.interactions.responses.original(rest.applicationId, token))\n },\n\n async getPinnedMessages(channelId) {\n return await rest.get<DiscordMessage[]>(rest.routes.channels.pins(channelId))\n },\n\n async getPrivateArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.private(channelId, options))\n },\n\n async getPrivateJoinedArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.joined(channelId, options))\n },\n\n async getPruneCount(guildId, options) {\n return await rest.get<DiscordPrunedCount>(rest.routes.guilds.prune(guildId, options))\n },\n\n async getPublicArchivedThreads(channelId, options) {\n return await rest.get<DiscordListArchivedThreads>(rest.routes.channels.threads.public(channelId, options))\n },\n\n async getRoles(guildId) {\n return await rest.get<DiscordRole[]>(rest.routes.guilds.roles.all(guildId))\n },\n\n async getScheduledEvent(guildId, eventId, options) {\n return await rest.get<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId, options?.withUserCount))\n },\n\n async getScheduledEvents(guildId, options) {\n return await rest.get<DiscordScheduledEvent[]>(rest.routes.guilds.events.events(guildId, options?.withUserCount))\n },\n\n async getScheduledEventUsers(guildId, eventId, options) {\n return await rest.get<Array<{ user: DiscordUser; member?: DiscordMember }>>(rest.routes.guilds.events.users(guildId, eventId, options))\n },\n\n async getSessionInfo() {\n return await rest.getGatewayBot()\n },\n\n async getStageInstance(channelId) {\n return await rest.get<DiscordStageInstance>(rest.routes.channels.stage(channelId))\n },\n\n async getSticker(stickerId: BigString) {\n return await rest.get<DiscordSticker>(rest.routes.sticker(stickerId))\n },\n\n async getGuildSticker(guildId, stickerId) {\n return await rest.get<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId))\n },\n\n async getGuildStickers(guildId) {\n return await rest.get<DiscordSticker[]>(rest.routes.guilds.stickers(guildId))\n },\n\n async getThreadMember(channelId, userId) {\n return await rest.get<DiscordThreadMember>(rest.routes.channels.threads.user(channelId, userId))\n },\n\n async getThreadMembers(channelId) {\n return await rest.get<DiscordThreadMember[]>(rest.routes.channels.threads.members(channelId))\n },\n\n async getReactions(channelId, messageId, reaction, options) {\n return await rest.get<DiscordUser[]>(rest.routes.channels.reactions.message(channelId, messageId, reaction, options))\n },\n\n async getUser(id) {\n return await rest.get<DiscordUser>(rest.routes.user(id))\n },\n\n async getVanityUrl(guildId) {\n return await rest.get<DiscordVanityUrl>(rest.routes.guilds.vanity(guildId))\n },\n\n async getVoiceRegions(guildId) {\n return await rest.get<DiscordVoiceRegion[]>(rest.routes.guilds.regions(guildId))\n },\n\n async getWebhook(webhookId) {\n return await rest.get<DiscordWebhook>(rest.routes.webhooks.id(webhookId))\n },\n\n async getWebhookMessage(webhookId, token, messageId, options) {\n return await rest.get<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options))\n },\n\n async getWebhookWithToken(webhookId, token) {\n return await rest.get<DiscordWebhook>(rest.routes.webhooks.webhook(webhookId, token))\n },\n\n async getWelcomeScreen(guildId) {\n return await rest.get<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId))\n },\n\n async getWidget(guildId) {\n return await rest.get<DiscordGuildWidget>(rest.routes.guilds.widgetJson(guildId))\n },\n\n async getWidgetSettings(guildId) {\n return await rest.get<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId))\n },\n\n async joinThread(channelId) {\n await rest.put(rest.routes.channels.threads.me(channelId))\n },\n\n async leaveGuild(guildId) {\n await rest.delete(rest.routes.guilds.leave(guildId))\n },\n\n async leaveThread(channelId) {\n await rest.delete(rest.routes.channels.threads.me(channelId))\n },\n\n async publishMessage(channelId, messageId) {\n return await rest.post<DiscordMessage>(rest.routes.channels.crosspost(channelId, messageId))\n },\n\n async removeRole(guildId, userId, roleId, reason) {\n await rest.delete(rest.routes.guilds.roles.member(guildId, userId, roleId), { reason })\n },\n\n async removeThreadMember(channelId, userId) {\n await rest.delete(rest.routes.channels.threads.user(channelId, userId))\n },\n\n // TODO: why that\n async sendFollowupMessage(token, options) {\n return await new Promise((resolve, reject) => {\n rest.sendRequest({\n url: rest.routes.webhooks.webhook(rest.applicationId, token),\n method: 'POST',\n options: { body: options },\n retryCount: 0,\n retryRequest: async function (options: SendRequestOptions) {\n // TODO: should change to reprocess queue item\n await rest.sendRequest(options)\n },\n resolve: (data) => {\n resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined)\n },\n reject,\n })\n })\n },\n\n // TODO: why that\n async sendInteractionResponse(interactionId, token, options) {\n await new Promise((resolve, reject) => {\n rest.sendRequest({\n url: rest.routes.interactions.responses.callback(interactionId, token),\n method: 'POST',\n options: { body: options },\n retryCount: 0,\n retryRequest: async function (options: SendRequestOptions) {\n // TODO: should change to reprocess queue item\n await rest.sendRequest(options)\n },\n resolve: (data) => {\n resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined)\n },\n reject,\n })\n })\n },\n\n async sendMessage(channelId, body) {\n return await rest.post<DiscordMessage>(rest.routes.channels.messages(channelId), { body })\n },\n\n async startThreadWithMessage(channelId, messageId, body) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.message(channelId, messageId), { body })\n },\n\n async startThreadWithoutMessage(channelId, body) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.all(channelId), { body })\n },\n\n async syncGuildTemplate(guildId) {\n return await rest.put<DiscordTemplate>(rest.routes.guilds.templates.all(guildId))\n },\n\n async banMember(guildId, userId, body) {\n await rest.put<void>(rest.routes.guilds.members.ban(guildId, userId), { body })\n },\n\n async editBotMember(guildId, body) {\n return await rest.patch<DiscordMember>(rest.routes.guilds.members.bot(guildId), { body })\n },\n\n async editMember(guildId, userId, body) {\n return await rest.patch<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId), { body })\n },\n\n async getMember(guildId, userId) {\n return await rest.get<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId))\n },\n\n async getMembers(guildId, options) {\n return await rest.get<DiscordMemberWithUser[]>(rest.routes.guilds.members.members(guildId, options))\n },\n\n async kickMember(guildId, userId, reason) {\n await rest.delete(rest.routes.guilds.members.member(guildId, userId), {\n reason,\n })\n },\n\n async pinMessage(channelId, messageId, reason) {\n await rest.put(rest.routes.channels.pin(channelId, messageId), { reason })\n },\n\n async pruneMembers(guildId, body) {\n return await rest.post<{ pruned: number | null }>(rest.routes.guilds.members.prune(guildId), { body })\n },\n\n async searchMembers(guildId, query, options) {\n return await rest.get<DiscordMemberWithUser[]>(rest.routes.guilds.members.search(guildId, query, options))\n },\n\n async unbanMember(guildId, userId) {\n await rest.delete(rest.routes.guilds.members.ban(guildId, userId))\n },\n\n async unpinMessage(channelId, messageId, reason) {\n await rest.delete(rest.routes.channels.pin(channelId, messageId), { reason })\n },\n\n async triggerTypingIndicator(channelId) {\n await rest.post(rest.routes.channels.typing(channelId))\n },\n\n async upsertGlobalApplicationCommands(body) {\n return await rest.put<DiscordApplicationCommand[]>(rest.routes.interactions.commands.commands(rest.applicationId), { body })\n },\n\n async upsertGuildApplicationCommands(guildId, body) {\n return await rest.put<DiscordApplicationCommand[]>(rest.routes.interactions.commands.guilds.all(rest.applicationId, guildId), { body })\n },\n }\n\n return rest\n}\n"],"names":["InteractionResponseTypes","calculateBits","camelize","camelToSnakeCase","delay","encode","getBotIdFromToken","isGetMessagesAfter","isGetMessagesAround","isGetMessagesBefore","isGetMessagesLimit","logger","processReactionString","urlToBase64","fetch","createInvalidRequestBucket","Queue","version","URL_PARTS_REGEX","createRestManager","options","token","Error","rest","applicationId","BigInt","baseUrl","proxy","maxRetryCount","Infinity","globallyRateLimited","processingRateLimitedPaths","deleteQueueDelay","queues","Map","rateLimitedPaths","invalidBucket","authorization","routes","webhooks","id","webhookId","message","messageId","url","threadId","original","webhook","wait","undefined","toString","sessionInfo","gatewayBot","channels","bulk","channelId","dm","pin","pins","reactions","bot","emoji","encodeURIComponent","user","userId","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","auditlogs","actionType","automod","rule","ruleId","rules","emojiId","emojis","events","withUserCount","event","eventId","users","withMember","guild","withCounts","integration","integrationId","integrations","invite","inviteCode","withExpiration","scheduledEventId","leave","ban","bans","member","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","commandId","withLocalizations","permissions","permission","command","responses","callback","interactionId","userBot","oauth2Application","nitroStickerPacks","checkRateLimits","ratelimited","get","global","now","resetTimestamp","changeToDiscordFormat","obj","map","item","newObj","key","Object","keys","includes","default_member_permissions","createRequest","headers","unauthorized","reason","body","attachments","form","FormData","i","length","append","blob","name","JSON","stringify","assign","method","processRateLimitedPaths","value","entries","delete","size","setTimeout","processHeaders","rateLimited","remaining","retryAfter","reset","Number","bucketId","handleCompletedRequest","interval","max","set","globalReset","sendRequest","startsWith","payload","debug","response","status","statusText","simplifyUrl","retryCount","reject","ok","error","resetAfter","json","retryRequest","is204","resolve","route","replace","match","pattern","substring","indexOf","endsWith","processRequest","request","parts","split","shift","queue","makeRequest","bucketQueue","file","Promise","f","arrayBuffer","type","Authorization","result","err","catch","data","parse","post","patch","put","addReaction","reaction","addReactions","ordered","addRole","addThreadMember","createAutomodRule","createChannel","createEmoji","createGlobalApplicationCommand","createGuild","createGuildApplicationCommand","createGuildFromTemplate","templateCode","icon","createGuildSticker","description","tags","createGuildTemplate","createForumThread","createInvite","createRole","createScheduledEvent","createStageInstance","createWebhook","avatar","deleteAutomodRule","deleteChannel","deleteChannelPermissionOverride","deleteEmoji","deleteFollowupMessage","deleteGlobalApplicationCommand","deleteGuild","deleteGuildApplicationCommand","deleteGuildSticker","deleteGuildTemplate","deleteIntegration","deleteInvite","deleteMessage","deleteMessages","messageIds","slice","deleteOriginalInteractionResponse","deleteOwnReaction","deleteReactionsAll","deleteReactionsEmoji","deleteRole","deleteScheduledEvent","deleteStageInstance","deleteUserReaction","deleteWebhook","deleteWebhookMessage","deleteWebhookWithToken","editApplicationCommandPermissions","bearerToken","editAutomodRule","editBotProfile","botAvatarURL","username","trim","editChannel","editChannelPermissionOverrides","editChannelPositions","editEmoji","editFollowupMessage","editGlobalApplicationCommand","editGuild","editGuildApplicationCommand","editGuildMfaLevel","mfaLevel","level","editGuildSticker","editGuildTemplate","editMessage","editOriginalInteractionResponse","editOriginalWebhookMessage","UpdateMessage","editOwnVoiceState","request_to_speak_timestamp","requestToSpeakTimestamp","editScheduledEvent","editRole","editRolePositions","editStageInstance","topic","editUserVoiceState","editWebhook","editWebhookMessage","editWebhookWithToken","editWelcomeScreen","editWidgetSettings","executeWebhook","followAnnouncement","sourceChannelId","targetChannelId","webhook_channel_id","getActiveThreads","getApplicationCommandPermission","getApplicationCommandPermissions","getApplicationInfo","getAuditLog","getAutomodRule","getAutomodRules","getAvailableVoiceRegions","getBan","getBans","getChannel","getChannelInvites","getChannels","getChannelWebhooks","getDmChannel","recipient_id","getEmoji","getEmojis","getFollowupMessage","getGatewayBot","getGlobalApplicationCommand","getGlobalApplicationCommands","getGuild","counts","getGuildApplicationCommand","getGuildApplicationCommands","getGuildPreview","getGuildTemplate","getGuildTemplates","getGuildWebhooks","getIntegrations","getInvite","getInvites","getMessage","getMessages","getNitroStickerPacks","getOriginalInteractionResponse","getPinnedMessages","getPrivateArchivedThreads","getPrivateJoinedArchivedThreads","getPruneCount","getPublicArchivedThreads","getRoles","getScheduledEvent","getScheduledEvents","getScheduledEventUsers","getSessionInfo","getStageInstance","getSticker","getGuildSticker","getGuildStickers","getThreadMember","getThreadMembers","getReactions","getUser","getVanityUrl","getVoiceRegions","getWebhook","getWebhookMessage","getWebhookWithToken","getWelcomeScreen","getWidget","getWidgetSettings","joinThread","leaveGuild","leaveThread","publishMessage","removeRole","removeThreadMember","sendFollowupMessage","sendInteractionResponse","sendMessage","startThreadWithMessage","startThreadWithoutMessage","syncGuildTemplate","banMember","editBotMember","editMember","getMember","getMembers","kickMember","pinMessage","pruneMembers","searchMembers","unbanMember","unpinMessage","triggerTypingIndicator","upsertGlobalApplicationCommands","upsertGuildApplicationCommands"],"mappings":"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"}
|