@discordeno/rest 19.0.0-next.7b5d99e → 19.0.0-next.7c51f73

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.js CHANGED
@@ -549,7 +549,7 @@ export function createRestManager(options) {
549
549
  const headers = {
550
550
  'user-agent': `DiscordBot (https://github.com/discordeno/discordeno, v${version})`
551
551
  };
552
- if (!options?.unauthorized) headers.authorization = `Bot ${rest.token}`;
552
+ if (options?.unauthorized !== false) headers.authorization = `Bot ${rest.token}`;
553
553
  // IF A REASON IS PROVIDED ENCODE IT IN HEADERS
554
554
  if (options?.reason !== undefined) {
555
555
  headers['x-audit-log-reason'] = encodeURIComponent(options?.reason);
@@ -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 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 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'\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 createRequestBody(method, 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?.files !== undefined) {\n const form = new FormData()\n for (let i = 0; i < options.files.length; ++i) {\n form.append(`file${i}`, options.files[i].blob, options.files[i].name)\n }\n\n form.append('payload_json', JSON.stringify({ ...options.body, files: undefined }))\n\n body = form\n\n // No need to set the `content-type` header since `fetch` does that automatically for us when we use a `FormData` object.\n } else if (options?.body !== undefined) {\n if (options.body instanceof FormData) {\n body = options.body\n // No need to set the `content-type` header since `fetch` does that automatically for us when we use a `FormData` object.\n } else {\n body = JSON.stringify(rest.changeToDiscordFormat(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,\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.createRequestBody(options.method, options.requestBodyOptions)\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 simplifyUrl(url, method) {\n const parts = url.split('/')\n const secondLastPart = parts[parts.length - 2]\n\n if (secondLastPart === 'channels' || secondLastPart === 'guilds') {\n return url\n }\n\n if (secondLastPart === 'reactions' || parts[parts.length - 1] === '@me') {\n parts.splice(-2)\n parts.push('reactions')\n } else {\n parts.splice(-1)\n parts.push('x')\n }\n\n if (parts[parts.length - 3] === 'reactions') {\n parts.splice(-2)\n }\n\n if (method === 'DELETE' && secondLastPart === 'messages') {\n return `D${parts.join('/')}`\n }\n\n return parts.join('/')\n },\n\n async 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\n if (request.runThroughQueue === false) {\n await rest.sendRequest(request)\n\n return\n }\n\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 const result = await fetch(`${rest.baseUrl}${url}`, rest.createRequestBody(method, options))\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(async (resolve, reject) => {\n const payload: SendRequestOptions = {\n url,\n method,\n requestBodyOptions: options,\n retryCount: 0,\n retryRequest: async function (payload: SendRequestOptions) {\n await rest.processRequest(payload)\n },\n resolve: (data) => {\n resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined)\n },\n reject,\n runThroughQueue: options?.runThroughQueue,\n }\n\n await rest.processRequest(payload)\n })\n },\n\n async get<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('GET', url, options)) as Camelize<T>\n },\n\n async post<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('POST', url, options)) as Camelize<T>\n },\n\n async delete(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n camelize(await rest.makeRequest('DELETE', url, options))\n },\n\n async patch<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PATCH', url, options)) as Camelize<T>\n },\n\n async put<T = void>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PUT', url, options)) 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, reason) {\n return await rest.post<DiscordAutoModerationRule>(rest.routes.guilds.automod.rules(guildId), { body, reason })\n },\n\n async createChannel(guildId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.guilds.channels(guildId), { body, reason })\n },\n\n async createEmoji(guildId, body, reason) {\n return await rest.post<DiscordEmoji>(rest.routes.guilds.emojis(guildId), { body, reason })\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, reason) {\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, reason })\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, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.forum(channelId), { body, files: body.files, reason })\n },\n\n async createInvite(channelId, body = {}, reason) {\n return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), { body, reason })\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, reason) {\n return await rest.post<DiscordScheduledEvent>(rest.routes.guilds.events.events(guildId), { body, reason })\n },\n\n async createStageInstance(body, reason) {\n return await rest.post<DiscordStageInstance>(rest.routes.channels.stages(), { body, reason })\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), { unauthorized: true })\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, reason) {\n await rest.delete(rest.routes.guilds.integration(guildId, integrationId), { reason })\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), { unauthorized: true })\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, reason) {\n await rest.delete(rest.routes.guilds.roles.one(guildId, roleId), { reason })\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, reason) {\n return await rest.patch<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId), { body, reason })\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, reason) {\n return await rest.patch<DiscordChannel>(rest.routes.channels.channel(channelId), { body, reason })\n },\n\n async editChannelPermissionOverrides(channelId, body, reason) {\n await rest.put(rest.routes.channels.overwrite(channelId, body.id), { body, reason })\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, reason) {\n return await rest.patch<DiscordEmoji>(rest.routes.guilds.emoji(guildId, id), { body, reason })\n },\n\n async editFollowupMessage(token, messageId, body) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId), {\n body,\n files: body.files,\n unauthorized: true,\n })\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, reason) {\n return await rest.patch<DiscordGuild>(rest.routes.guilds.guild(guildId), { body, reason })\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, reason) {\n return await rest.patch<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId), { body, reason })\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), {\n body,\n files: body.files,\n })\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 files: options.files,\n unauthorized: true,\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, reason) {\n return await rest.patch<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId), { body, reason })\n },\n\n async editRole(guildId, roleId, body, reason) {\n return await rest.patch<DiscordRole>(rest.routes.guilds.roles.one(guildId, roleId), { body, reason })\n },\n\n async editRolePositions(guildId, body, reason) {\n return await rest.patch<DiscordRole[]>(rest.routes.guilds.roles.all(guildId), { body, reason })\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, reason) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.id(webhookId), { body, reason })\n },\n\n async editWebhookMessage(webhookId, token, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options), {\n body: options,\n files: options.files,\n })\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, reason) {\n return await rest.patch<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId), { body, reason })\n },\n\n async editWidgetSettings(guildId, body, reason) {\n return await rest.patch<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId), { body, reason })\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), { unauthorized: true })\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), { unauthorized: true })\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 async sendFollowupMessage(token, options) {\n return await rest.post(rest.routes.webhooks.webhook(rest.applicationId, token), {\n body: options,\n files: options.files,\n unauthorized: true,\n })\n },\n\n async sendInteractionResponse(interactionId, token, options) {\n return await rest.post(rest.routes.interactions.responses.callback(interactionId, token), {\n body: options,\n files: options.data?.files,\n runThroughQueue: false,\n unauthorized: true,\n })\n },\n\n async sendMessage(channelId, body) {\n return await rest.post<DiscordMessage>(rest.routes.channels.messages(channelId), { body, files: body.files })\n },\n\n async startThreadWithMessage(channelId, messageId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.message(channelId, messageId), { body, reason })\n },\n\n async startThreadWithoutMessage(channelId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.all(channelId), { body, reason })\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, reason) {\n await rest.put<void>(rest.routes.guilds.members.ban(guildId, userId), { body, reason })\n },\n\n async editBotMember(guildId, body, reason) {\n return await rest.patch<DiscordMember>(rest.routes.guilds.members.bot(guildId), { body, reason })\n },\n\n async editMember(guildId, userId, body, reason) {\n return await rest.patch<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId), { body, reason })\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, reason) {\n return await rest.post<{ pruned: number | null }>(rest.routes.guilds.members.prune(guildId), { body, reason })\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, reason) {\n await rest.delete(rest.routes.guilds.members.ban(guildId, userId), { reason })\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","getBotIdFromToken","isGetMessagesAfter","isGetMessagesAround","isGetMessagesBefore","isGetMessagesLimit","logger","processReactionString","urlToBase64","fetch","createInvalidRequestBucket","Queue","version","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","createRequestBody","method","headers","unauthorized","reason","body","files","form","FormData","i","length","append","blob","name","JSON","stringify","assign","processRateLimitedPaths","value","entries","delete","size","setTimeout","processHeaders","rateLimited","remaining","retryAfter","reset","Number","bucketId","handleCompletedRequest","interval","max","set","globalReset","sendRequest","startsWith","payload","requestBodyOptions","debug","response","status","statusText","simplifyUrl","retryCount","reject","ok","error","resetAfter","json","retryRequest","is204","resolve","parts","split","secondLastPart","splice","push","processRequest","request","route","substring","indexOf","shift","runThroughQueue","queue","makeRequest","bucketQueue","result","err","catch","Promise","data","parse","post","patch","put","addReaction","reaction","addReactions","ordered","addRole","addThreadMember","createAutomodRule","createChannel","createEmoji","createGlobalApplicationCommand","createGuild","createGuildApplicationCommand","createGuildFromTemplate","templateCode","icon","createGuildSticker","file","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","type","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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"}
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 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 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'\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 createRequestBody(method, options) {\n const headers: Record<string, string> = {\n 'user-agent': `DiscordBot (https://github.com/discordeno/discordeno, v${version})`,\n }\n\n if (options?.unauthorized !== false) 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?.files !== undefined) {\n const form = new FormData()\n for (let i = 0; i < options.files.length; ++i) {\n form.append(`file${i}`, options.files[i].blob, options.files[i].name)\n }\n\n form.append('payload_json', JSON.stringify({ ...options.body, files: undefined }))\n\n body = form\n\n // No need to set the `content-type` header since `fetch` does that automatically for us when we use a `FormData` object.\n } else if (options?.body !== undefined) {\n if (options.body instanceof FormData) {\n body = options.body\n // No need to set the `content-type` header since `fetch` does that automatically for us when we use a `FormData` object.\n } else {\n body = JSON.stringify(rest.changeToDiscordFormat(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,\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.createRequestBody(options.method, options.requestBodyOptions)\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 simplifyUrl(url, method) {\n const parts = url.split('/')\n const secondLastPart = parts[parts.length - 2]\n\n if (secondLastPart === 'channels' || secondLastPart === 'guilds') {\n return url\n }\n\n if (secondLastPart === 'reactions' || parts[parts.length - 1] === '@me') {\n parts.splice(-2)\n parts.push('reactions')\n } else {\n parts.splice(-1)\n parts.push('x')\n }\n\n if (parts[parts.length - 3] === 'reactions') {\n parts.splice(-2)\n }\n\n if (method === 'DELETE' && secondLastPart === 'messages') {\n return `D${parts.join('/')}`\n }\n\n return parts.join('/')\n },\n\n async 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\n if (request.runThroughQueue === false) {\n await rest.sendRequest(request)\n\n return\n }\n\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 const result = await fetch(`${rest.baseUrl}${url}`, rest.createRequestBody(method, options))\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(async (resolve, reject) => {\n const payload: SendRequestOptions = {\n url,\n method,\n requestBodyOptions: options,\n retryCount: 0,\n retryRequest: async function (payload: SendRequestOptions) {\n await rest.processRequest(payload)\n },\n resolve: (data) => {\n resolve(data.status !== 204 ? JSON.parse(data.body ?? '{}') : undefined)\n },\n reject,\n runThroughQueue: options?.runThroughQueue,\n }\n\n await rest.processRequest(payload)\n })\n },\n\n async get<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('GET', url, options)) as Camelize<T>\n },\n\n async post<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('POST', url, options)) as Camelize<T>\n },\n\n async delete(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n camelize(await rest.makeRequest('DELETE', url, options))\n },\n\n async patch<T = Record<string, unknown>>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PATCH', url, options)) as Camelize<T>\n },\n\n async put<T = void>(url: string, options?: Omit<CreateRequestBodyOptions, 'body' | 'method'>) {\n return camelize(await rest.makeRequest('PUT', url, options)) 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, reason) {\n return await rest.post<DiscordAutoModerationRule>(rest.routes.guilds.automod.rules(guildId), { body, reason })\n },\n\n async createChannel(guildId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.guilds.channels(guildId), { body, reason })\n },\n\n async createEmoji(guildId, body, reason) {\n return await rest.post<DiscordEmoji>(rest.routes.guilds.emojis(guildId), { body, reason })\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, reason) {\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, reason })\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, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.forum(channelId), { body, files: body.files, reason })\n },\n\n async createInvite(channelId, body = {}, reason) {\n return await rest.post<DiscordInvite>(rest.routes.channels.invites(channelId), { body, reason })\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, reason) {\n return await rest.post<DiscordScheduledEvent>(rest.routes.guilds.events.events(guildId), { body, reason })\n },\n\n async createStageInstance(body, reason) {\n return await rest.post<DiscordStageInstance>(rest.routes.channels.stages(), { body, reason })\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), { unauthorized: true })\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, reason) {\n await rest.delete(rest.routes.guilds.integration(guildId, integrationId), { reason })\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), { unauthorized: true })\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, reason) {\n await rest.delete(rest.routes.guilds.roles.one(guildId, roleId), { reason })\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, reason) {\n return await rest.patch<DiscordAutoModerationRule>(rest.routes.guilds.automod.rule(guildId, ruleId), { body, reason })\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, reason) {\n return await rest.patch<DiscordChannel>(rest.routes.channels.channel(channelId), { body, reason })\n },\n\n async editChannelPermissionOverrides(channelId, body, reason) {\n await rest.put(rest.routes.channels.overwrite(channelId, body.id), { body, reason })\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, reason) {\n return await rest.patch<DiscordEmoji>(rest.routes.guilds.emoji(guildId, id), { body, reason })\n },\n\n async editFollowupMessage(token, messageId, body) {\n return await rest.patch<DiscordMessage>(rest.routes.interactions.responses.message(rest.applicationId, token, messageId), {\n body,\n files: body.files,\n unauthorized: true,\n })\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, reason) {\n return await rest.patch<DiscordGuild>(rest.routes.guilds.guild(guildId), { body, reason })\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, reason) {\n return await rest.patch<DiscordSticker>(rest.routes.guilds.sticker(guildId, stickerId), { body, reason })\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), {\n body,\n files: body.files,\n })\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 files: options.files,\n unauthorized: true,\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, reason) {\n return await rest.patch<DiscordScheduledEvent>(rest.routes.guilds.events.event(guildId, eventId), { body, reason })\n },\n\n async editRole(guildId, roleId, body, reason) {\n return await rest.patch<DiscordRole>(rest.routes.guilds.roles.one(guildId, roleId), { body, reason })\n },\n\n async editRolePositions(guildId, body, reason) {\n return await rest.patch<DiscordRole[]>(rest.routes.guilds.roles.all(guildId), { body, reason })\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, reason) {\n return await rest.patch<DiscordWebhook>(rest.routes.webhooks.id(webhookId), { body, reason })\n },\n\n async editWebhookMessage(webhookId, token, messageId, options) {\n return await rest.patch<DiscordMessage>(rest.routes.webhooks.message(webhookId, token, messageId, options), {\n body: options,\n files: options.files,\n })\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, reason) {\n return await rest.patch<DiscordWelcomeScreen>(rest.routes.guilds.welcome(guildId), { body, reason })\n },\n\n async editWidgetSettings(guildId, body, reason) {\n return await rest.patch<DiscordGuildWidgetSettings>(rest.routes.guilds.widget(guildId), { body, reason })\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), { unauthorized: true })\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), { unauthorized: true })\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 async sendFollowupMessage(token, options) {\n return await rest.post(rest.routes.webhooks.webhook(rest.applicationId, token), {\n body: options,\n files: options.files,\n unauthorized: true,\n })\n },\n\n async sendInteractionResponse(interactionId, token, options) {\n return await rest.post(rest.routes.interactions.responses.callback(interactionId, token), {\n body: options,\n files: options.data?.files,\n runThroughQueue: false,\n unauthorized: true,\n })\n },\n\n async sendMessage(channelId, body) {\n return await rest.post<DiscordMessage>(rest.routes.channels.messages(channelId), { body, files: body.files })\n },\n\n async startThreadWithMessage(channelId, messageId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.message(channelId, messageId), { body, reason })\n },\n\n async startThreadWithoutMessage(channelId, body, reason) {\n return await rest.post<DiscordChannel>(rest.routes.channels.threads.all(channelId), { body, reason })\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, reason) {\n await rest.put<void>(rest.routes.guilds.members.ban(guildId, userId), { body, reason })\n },\n\n async editBotMember(guildId, body, reason) {\n return await rest.patch<DiscordMember>(rest.routes.guilds.members.bot(guildId), { body, reason })\n },\n\n async editMember(guildId, userId, body, reason) {\n return await rest.patch<DiscordMemberWithUser>(rest.routes.guilds.members.member(guildId, userId), { body, reason })\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, reason) {\n return await rest.post<{ pruned: number | null }>(rest.routes.guilds.members.prune(guildId), { body, reason })\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, reason) {\n await rest.delete(rest.routes.guilds.members.ban(guildId, userId), { reason })\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","getBotIdFromToken","isGetMessagesAfter","isGetMessagesAround","isGetMessagesBefore","isGetMessagesLimit","logger","processReactionString","urlToBase64","fetch","createInvalidRequestBucket","Queue","version","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","createRequestBody","method","headers","unauthorized","reason","body","files","form","FormData","i","length","append","blob","name","JSON","stringify","assign","processRateLimitedPaths","value","entries","delete","size","setTimeout","processHeaders","rateLimited","remaining","retryAfter","reset","Number","bucketId","handleCompletedRequest","interval","max","set","globalReset","sendRequest","startsWith","payload","requestBodyOptions","debug","response","status","statusText","simplifyUrl","retryCount","reject","ok","error","resetAfter","json","retryRequest","is204","resolve","parts","split","secondLastPart","splice","push","processRequest","request","route","substring","indexOf","shift","runThroughQueue","queue","makeRequest","bucketQueue","result","err","catch","Promise","data","parse","post","patch","put","addReaction","reaction","addReactions","ordered","addRole","addThreadMember","createAutomodRule","createChannel","createEmoji","createGlobalApplicationCommand","createGuild","createGuildApplicationCommand","createGuildFromTemplate","templateCode","icon","createGuildSticker","file","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","type","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":"AAAA,mEAAmE,GACnE,kCAAkC,GAClC,SAASA,wBAAwB,QAAQ,oBAAmB;AAC5D,SACEC,aAAa,EACbC,QAAQ,EACRC,gBAAgB,EAChBC,KAAK,EACLC,iBAAiB,EACjBC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,kBAAkB,EAClBC,MAAM,EACNC,qBAAqB,EACrBC,WAAW,QACN,oBAAmB;AAC1B,OAAOC,WAAW,aAAY;AAE9B,SAASC,0BAA0B,QAAQ,qBAAoB;AAC/D,SAASC,KAAK,QAAQ,aAAY;AA+ClC,gDAAgD;AAChD,MAAMC,UAAU;AAEhB,OAAO,SAASC,kBAAkBC,OAAiC,EAAe;IAChF,2BAA2B;IAC3B,IAAI,CAACA,QAAQC,KAAK,EAAE,MAAM,IAAIC,MAAM,mCAAkC;IAEtE,MAAMC,OAAoB;QACxBF,OAAOD,QAAQC,KAAK;QACpBG,eAAeJ,QAAQI,aAAa,GAAGC,OAAOL,QAAQI,aAAa,IAAIjB,kBAAkBa,QAAQC,KAAK,CAAC;QACvGH,SAASE,QAAQF,OAAO,IAAI;QAC5BQ,SAASN,QAAQO,KAAK,EAAED,WAAW;QACnCE,eAAeC;QACfC,qBAAqB,KAAK;QAC1BC,4BAA4B,KAAK;QACjCC,kBAAkB;QAClBC,QAAQ,IAAIC;QACZC,kBAAkB,IAAID;QACtBE,eAAepB,2BAA2B,CAAC;QAC3CqB,eAAejB,QAAQO,KAAK,EAAEU;QAE9BC,QAAQ;YACNC,UAAU;gBACRC,IAAI,CAACC,YAAc;oBACjB,OAAO,CAAC,UAAU,EAAEA,UAAU,CAAC;gBACjC;gBACAC,SAAS,CAACD,WAAWpB,OAAOsB,WAAWvB,UAAY;oBACjD,IAAIwB,MAAM,CAAC,UAAU,EAAEH,UAAU,CAAC,EAAEpB,MAAM,UAAU,EAAEsB,UAAU,CAAC,CAAC;oBAElE,IAAIvB,SAAS;wBACX,IAAIA,QAAQyB,QAAQ,EAAED,OAAO,CAAC,UAAU,EAAExB,QAAQyB,QAAQ,CAAC,CAAC;oBAC9D,CAAC;oBAED,OAAOD;gBACT;gBACAE,UAAU,CAACL,WAAWpB,OAAOD,UAAY;oBACvC,IAAIwB,MAAM,CAAC,UAAU,EAAEH,UAAU,CAAC,EAAEpB,MAAM,oBAAoB,CAAC;oBAE/D,IAAID,SAAS;wBACX,IAAIA,QAAQyB,QAAQ,EAAED,OAAO,CAAC,UAAU,EAAExB,QAAQyB,QAAQ,CAAC,CAAC;oBAC9D,CAAC;oBAED,OAAOD;gBACT;gBACAG,SAAS,CAACN,WAAWpB,OAAOD,UAAY;oBACtC,IAAIwB,MAAM,CAAC,UAAU,EAAEH,UAAU,CAAC,EAAEpB,MAAM,CAAC,CAAC;oBAE5C,IAAID,SAAS;wBACX,IAAIA,SAAS4B,SAASC,WAAWL,OAAO,CAAC,KAAK,EAAExB,QAAQ4B,IAAI,CAACE,QAAQ,GAAG,CAAC;wBACzE,IAAI9B,QAAQyB,QAAQ,EAAED,OAAO,CAAC,UAAU,EAAExB,QAAQyB,QAAQ,CAAC,CAAC;oBAC9D,CAAC;oBAED,OAAOD;gBACT;YACF;YAEA,0BAA0B;YAC1BO,aAAa,IAAM5B,KAAKe,MAAM,CAACc,UAAU;YAEzC,oBAAoB;YACpBC,UAAU;gBACRC,MAAM,CAACC,YAAc;oBACnB,OAAO,CAAC,UAAU,EAAEA,UAAU,qBAAqB,CAAC;gBACtD;gBACAC,IAAI,IAAM;oBACR,OAAO;gBACT;gBACAC,KAAK,CAACF,WAAWZ,YAAc;oBAC7B,OAAO,CAAC,UAAU,EAAEY,UAAU,MAAM,EAAEZ,UAAU,CAAC;gBACnD;gBACAe,MAAM,CAACH,YAAc;oBACnB,OAAO,CAAC,UAAU,EAAEA,UAAU,KAAK,CAAC;gBACtC;gBACAI,WAAW;oBACTC,KAAK,CAACL,WAAWZ,WAAWkB,QAAU;wBACpC,OAAO,CAAC,UAAU,EAAEN,UAAU,UAAU,EAAEZ,UAAU,WAAW,EAAEmB,mBAAmBD,OAAO,IAAI,CAAC;oBAClG;oBACAE,MAAM,CAACR,WAAWZ,WAAWkB,OAAOG,SAAW;wBAC7C,OAAO,CAAC,UAAU,EAAET,UAAU,UAAU,EAAEZ,UAAU,WAAW,EAAEmB,mBAAmBD,OAAO,CAAC,EAAEG,OAAO,CAAC;oBACxG;oBACAC,KAAK,CAACV,WAAWZ,YAAc;wBAC7B,OAAO,CAAC,UAAU,EAAEY,UAAU,UAAU,EAAEZ,UAAU,UAAU,CAAC;oBACjE;oBACAkB,OAAO,CAACN,WAAWZ,WAAWkB,OAAOzC,UAAY;wBAC/C,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,UAAU,EAAEZ,UAAU,WAAW,EAAEmB,mBAAmBD,OAAO,CAAC,CAAC;wBAEhG,IAAIzC,SAAS;4BACX,4EAA4E;4BAC5E,IAAIA,QAAQ8C,KAAK,EAAEtB,OAAO,CAAC,MAAM,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;4BAClD,4EAA4E;4BAC5E,IAAI9C,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOvB;oBACT;oBACAF,SAAS,CAACa,WAAWZ,WAAWkB,OAAOzC,UAAY;wBACjD,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,UAAU,EAAEZ,UAAU,WAAW,EAAEmB,mBAAmBD,OAAO,CAAC,CAAC;wBAEhG,IAAIzC,SAAS;4BACX,4EAA4E;4BAC5E,IAAIA,QAAQ8C,KAAK,EAAEtB,OAAO,CAAC,MAAM,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;4BAClD,4EAA4E;4BAC5E,IAAI9C,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOvB;oBACT;gBACF;gBACAL,UAAU,CAACgB,YAAc;oBACvB,OAAO,CAAC,UAAU,EAAEA,UAAU,SAAS,CAAC;gBAC1C;gBAEAa,SAAS,CAACb,YAAc;oBACtB,OAAO,CAAC,UAAU,EAAEA,UAAU,CAAC;gBACjC;gBAEAc,QAAQ,CAACd,YAAc;oBACrB,OAAO,CAAC,UAAU,EAAEA,UAAU,UAAU,CAAC;gBAC3C;gBAEAe,OAAO,CAACf,YAAc;oBACpB,OAAO,CAAC,UAAU,EAAEA,UAAU,yBAAyB,CAAC;gBAC1D;gBAEAgB,SAAS,CAAChB,YAAc;oBACtB,OAAO,CAAC,UAAU,EAAEA,UAAU,QAAQ,CAAC;gBACzC;gBAEAb,SAAS,CAACa,WAAWZ,YAAc;oBACjC,OAAO,CAAC,UAAU,EAAEY,UAAU,UAAU,EAAEZ,UAAU,CAAC;gBACvD;gBAEA6B,UAAU,CAACjB,WAAWnC,UAAiC;oBACrD,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,UAAU,CAAC;oBAE5C,IAAInC,SAAS;wBACX,IAAIZ,mBAAmBY,YAAYA,QAAQ8C,KAAK,EAAE;4BAChDtB,OAAO,CAAC,MAAM,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;wBACjC,CAAC;wBACD,IAAIxD,oBAAoBU,YAAYA,QAAQqD,MAAM,EAAE;4BAClD7B,OAAO,CAAC,QAAQ,EAAExB,QAAQqD,MAAM,CAAC,CAAC;wBACpC,CAAC;wBACD,IAAIhE,oBAAoBW,YAAYA,QAAQsD,MAAM,EAAE;4BAClD9B,OAAO,CAAC,QAAQ,EAAExB,QAAQsD,MAAM,CAAC,CAAC;wBACpC,CAAC;wBACD,IAAI/D,mBAAmBS,YAAYA,QAAQ+C,KAAK,EAAE;4BAChDvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBAClC,CAAC;oBACH,CAAC;oBAED,OAAOvB;gBACT;gBAEA+B,WAAW,CAACpB,WAAWqB,cAAgB;oBACrC,OAAO,CAAC,UAAU,EAAErB,UAAU,aAAa,EAAEqB,YAAY,CAAC;gBAC5D;gBAEAC,WAAW,CAACtB,WAAWZ,YAAc;oBACnC,OAAO,CAAC,UAAU,EAAEY,UAAU,UAAU,EAAEZ,UAAU,UAAU,CAAC;gBACjE;gBAEAmC,QAAQ,IAAM;oBACZ,OAAO;gBACT;gBAEAC,OAAO,CAACxB,YAAc;oBACpB,OAAO,CAAC,iBAAiB,EAAEA,UAAU,CAAC;gBACxC;gBAEA,mBAAmB;gBACnByB,SAAS;oBACPtC,SAAS,CAACa,WAAWZ,YAAc;wBACjC,OAAO,CAAC,UAAU,EAAEY,UAAU,UAAU,EAAEZ,UAAU,QAAQ,CAAC;oBAC/D;oBACAsB,KAAK,CAACV,YAAc;wBAClB,OAAO,CAAC,UAAU,EAAEA,UAAU,QAAQ,CAAC;oBACzC;oBACA0B,QAAQ,CAACC,UAAY;wBACnB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,eAAe,CAAC;oBAC5C;oBACAC,SAAS,CAAC5B,YAAc;wBACtB,OAAO,CAAC,UAAU,EAAEA,UAAU,eAAe,CAAC;oBAChD;oBACA6B,IAAI,CAAC7B,YAAc;wBACjB,OAAO,CAAC,UAAU,EAAEA,UAAU,mBAAmB,CAAC;oBACpD;oBACAQ,MAAM,CAACR,WAAWS,SAAW;wBAC3B,OAAO,CAAC,UAAU,EAAET,UAAU,gBAAgB,EAAES,OAAO,CAAC;oBAC1D;oBACAqB,UAAU,CAAC9B,YAAc;wBACvB,OAAO,CAAC,UAAU,EAAEA,UAAU,iBAAiB,CAAC;oBAClD;oBACA+B,QAAQ,CAAC/B,WAAWnC,UAAY;wBAC9B,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,yBAAyB,CAAC;wBAE3D,IAAInC,SAAS;4BACX,IAAIA,QAAQqD,MAAM,EAAE;gCAClB7B,OAAO,CAAC,OAAO,EAAE,IAAI2C,KAAKnE,QAAQqD,MAAM,EAAEe,WAAW,GAAG,CAAC;4BAC3D,CAAC;4BACD,4EAA4E;4BAC5E,IAAIpE,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOvB;oBACT;oBACA6C,SAAS,CAAClC,WAAWnC,UAAY;wBAC/B,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,0BAA0B,CAAC;wBAE5D,IAAInC,SAAS;4BACX,IAAIA,QAAQqD,MAAM,EAAE;gCAClB7B,OAAO,CAAC,OAAO,EAAE,IAAI2C,KAAKnE,QAAQqD,MAAM,EAAEe,WAAW,GAAG,CAAC;4BAC3D,CAAC;4BACD,4EAA4E;4BAC5E,IAAIpE,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOvB;oBACT;oBACA8C,QAAQ,CAACnC,WAAWnC,UAAY;wBAC9B,IAAIwB,MAAM,CAAC,UAAU,EAAEW,UAAU,oCAAoC,CAAC;wBAEtE,IAAInC,SAAS;4BACX,IAAIA,QAAQqD,MAAM,EAAE;gCAClB7B,OAAO,CAAC,OAAO,EAAE,IAAI2C,KAAKnE,QAAQqD,MAAM,EAAEe,WAAW,GAAG,CAAC;4BAC3D,CAAC;4BACD,4EAA4E;4BAC5E,IAAIpE,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOvB;oBACT;gBACF;gBAEA+C,QAAQ,CAACpC,YAAc;oBACrB,OAAO,CAAC,UAAU,EAAEA,UAAU,OAAO,CAAC;gBACxC;YACF;YAEA,kBAAkB;YAClBqC,QAAQ;gBACN3B,KAAK,IAAM;oBACT,OAAO;gBACT;gBACA4B,WAAW,CAACX,SAAS9D,UAAY;oBAC/B,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,YAAY,CAAC;oBAE1C,IAAI9D,SAAS;wBACX,4EAA4E;wBAC5E,IAAIA,QAAQ0E,UAAU,EAAElD,OAAO,CAAC,YAAY,EAAExB,QAAQ0E,UAAU,CAAC,CAAC;wBAClE,4EAA4E;wBAC5E,IAAI1E,QAAQqD,MAAM,EAAE7B,OAAO,CAAC,QAAQ,EAAExB,QAAQqD,MAAM,CAAC,CAAC;wBACtD,4EAA4E;wBAC5E,IAAIrD,QAAQ8C,KAAK,EAAEtB,OAAO,CAAC,OAAO,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;wBACnD,4EAA4E;wBAC5E,IAAI9C,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACnD,4EAA4E;wBAC5E,IAAI/C,QAAQ4C,MAAM,EAAEpB,OAAO,CAAC,SAAS,EAAExB,QAAQ4C,MAAM,CAAC,CAAC;oBACzD,CAAC;oBAED,OAAOpB;gBACT;gBACAmD,SAAS;oBACPC,MAAM,CAACd,SAASe,SAAW;wBACzB,OAAO,CAAC,QAAQ,EAAEf,QAAQ,uBAAuB,EAAEe,OAAO,CAAC;oBAC7D;oBACAC,OAAO,CAAChB,UAAY;wBAClB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,sBAAsB,CAAC;oBACnD;gBACF;gBACA7B,UAAU,CAAC6B,UAAY;oBACrB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,SAAS,CAAC;gBACtC;gBACArB,OAAO,CAACqB,SAASiB,UAAY;oBAC3B,OAAO,CAAC,QAAQ,EAAEjB,QAAQ,QAAQ,EAAEiB,QAAQ,CAAC;gBAC/C;gBACAC,QAAQ,CAAClB,UAAY;oBACnB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,OAAO,CAAC;gBACpC;gBACAmB,QAAQ;oBACNA,QAAQ,CAACnB,SAASoB,gBAA4B;wBAC5C,IAAI1D,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,kBAAkB,CAAC;wBAEhD,IAAIoB,kBAAkBrD,WAAW;4BAC/BL,OAAO,CAAC,gBAAgB,EAAE0D,cAAcpD,QAAQ,GAAG,CAAC;wBACtD,CAAC;wBACD,OAAON;oBACT;oBACA2D,OAAO,CAACrB,SAASsB,SAASF,gBAA4B;wBACpD,IAAI1D,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,kBAAkB,EAAEsB,QAAQ,CAAC;wBAE1D,IAAIF,kBAAkBrD,WAAW;4BAC/BL,OAAO,CAAC,gBAAgB,EAAE0D,cAAcpD,QAAQ,GAAG,CAAC;wBACtD,CAAC;wBAED,OAAON;oBACT;oBACA6D,OAAO,CAACvB,SAASsB,SAASpF,UAAqC;wBAC7D,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,kBAAkB,EAAEsB,QAAQ,OAAO,CAAC;wBAEjE,IAAIpF,SAAS;4BACX,4EAA4E;4BAC5E,IAAIA,QAAQ+C,KAAK,KAAKlB,WAAWL,OAAO,CAAC,MAAM,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;4BAChE,IAAI/C,QAAQsF,UAAU,KAAKzD,WAAW;gCACpC,4EAA4E;gCAC5EL,OAAO,CAAC,aAAa,EAAExB,QAAQsF,UAAU,CAACxD,QAAQ,GAAG,CAAC;4BACxD,CAAC;4BACD,4EAA4E;4BAC5E,IAAI9B,QAAQ8C,KAAK,KAAKjB,WAAWL,OAAO,CAAC,OAAO,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;4BACjE,4EAA4E;4BAC5E,IAAI9C,QAAQqD,MAAM,KAAKxB,WAAWL,OAAO,CAAC,QAAQ,EAAExB,QAAQqD,MAAM,CAAC,CAAC;wBACtE,CAAC;wBAED,OAAO7B;oBACT;gBACF;gBACA+D,OAAMzB,OAAO,EAAE0B,UAAU,EAAE;oBACzB,IAAIhE,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,CAAC,CAAC;oBAE/B,IAAI0B,eAAe3D,WAAW;wBAC5BL,OAAO,CAAC,YAAY,EAAEgE,WAAW1D,QAAQ,GAAG,CAAC;oBAC/C,CAAC;oBAED,OAAON;gBACT;gBACAiE,aAAY3B,OAAO,EAAE4B,aAAa,EAAE;oBAClC,OAAO,CAAC,QAAQ,EAAE5B,QAAQ,cAAc,EAAE4B,cAAc,CAAC;gBAC3D;gBACAC,cAAc,CAAC7B,UAAY;oBACzB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,uCAAuC,CAAC;gBACpE;gBACA8B,QAAOC,UAAU,EAAE7F,OAAO,EAAE;oBAC1B,IAAIwB,MAAM,CAAC,SAAS,EAAEqE,WAAW,CAAC,CAAC;oBAEnC,IAAI7F,SAAS;wBACX,IAAIA,QAAQwF,UAAU,KAAK3D,WAAW;4BACpC,4EAA4E;4BAC5EL,OAAO,CAAC,YAAY,EAAExB,QAAQwF,UAAU,CAAC1D,QAAQ,GAAG,CAAC;wBACvD,CAAC;wBACD,IAAI9B,QAAQ8F,cAAc,KAAKjE,WAAW;4BACxC,4EAA4E;4BAC5EL,OAAO,CAAC,iBAAiB,EAAExB,QAAQ8F,cAAc,CAAChE,QAAQ,GAAG,CAAC;wBAChE,CAAC;wBACD,IAAI9B,QAAQ+F,gBAAgB,EAAE;4BAC5B,4EAA4E;4BAC5EvE,OAAO,CAAC,0BAA0B,EAAExB,QAAQ+F,gBAAgB,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;oBAED,OAAOvE;gBACT;gBACA2B,SAAS,CAACW,UAAY;oBACpB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,QAAQ,CAAC;gBACrC;gBACAkC,OAAO,CAAClC,UAAY;oBAClB,OAAO,CAAC,kBAAkB,EAAEA,QAAQ,CAAC;gBACvC;gBACAC,SAAS;oBACPkC,KAAK,CAACnC,SAASlB,SAAW;wBACxB,OAAO,CAAC,QAAQ,EAAEkB,QAAQ,MAAM,EAAElB,OAAO,CAAC;oBAC5C;oBACAsD,MAAM,CAACpC,SAAS9D,UAAY;wBAC1B,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,MAAM,CAAC;wBAEpC,IAAI9D,SAAS;4BACX,4EAA4E;4BAC5E,IAAIA,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,MAAM,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;4BAClD,4EAA4E;4BAC5E,IAAI/C,QAAQ8C,KAAK,EAAEtB,OAAO,CAAC,OAAO,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;4BACnD,4EAA4E;4BAC5E,IAAI9C,QAAQqD,MAAM,EAAE7B,OAAO,CAAC,QAAQ,EAAExB,QAAQqD,MAAM,CAAC,CAAC;wBACxD,CAAC;wBAED,OAAO7B;oBACT;oBACAgB,KAAK,CAACsB,UAAY;wBAChB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,YAAY,CAAC;oBACzC;oBACAqC,QAAQ,CAACrC,SAASlB,SAAW;wBAC3B,OAAO,CAAC,QAAQ,EAAEkB,QAAQ,SAAS,EAAElB,OAAO,CAAC;oBAC/C;oBACAmB,SAAS,CAACD,SAAS9D,UAAY;wBAC7B,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,SAAS,CAAC;wBAEvC,IAAI9D,YAAY6B,WAAW;4BACzB,4EAA4E;4BAC5E,IAAI7B,QAAQ+C,KAAK,EAAEvB,OAAO,CAAC,MAAM,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;4BAClD,4EAA4E;4BAC5E,IAAI/C,QAAQ8C,KAAK,EAAEtB,OAAO,CAAC,OAAO,EAAExB,QAAQ8C,KAAK,CAAC,CAAC;wBACrD,CAAC;wBAED,OAAOtB;oBACT;oBACA4E,QAAQ,CAACtC,SAASuC,OAAOrG,UAAY;wBACnC,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,sBAAsB,EAAEpB,mBAAmB2D,OAAO,CAAC;wBAEhF,IAAIrG,SAAS;4BACX,IAAIA,QAAQ+C,KAAK,KAAKlB,WAAWL,OAAO,CAAC,OAAO,EAAExB,QAAQ+C,KAAK,CAAC,CAAC;wBACnE,CAAC;wBAED,OAAOvB;oBACT;oBACA8E,OAAO,CAACxC,SAAS9D,UAAY;wBAC3B,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,OAAO,CAAC;wBAErC,IAAI9D,SAAS;4BACX,4EAA4E;4BAC5E,IAAIA,QAAQuG,IAAI,EAAE/E,OAAO,CAAC,KAAK,EAAExB,QAAQuG,IAAI,CAAC,CAAC;4BAC/C,IAAIC,MAAMC,OAAO,CAACzG,QAAQ0G,YAAY,GAAG;gCACvC,4EAA4E;gCAC5ElF,OAAO,CAAC,eAAe,EAAExB,QAAQ0G,YAAY,CAACC,IAAI,CAAC,KAAK,CAAC;4BAC3D,OAAO,IAAI3G,QAAQ0G,YAAY,EAAE;gCAC/B,4EAA4E;gCAC5ElF,OAAO,CAAC,eAAe,EAAExB,QAAQ0G,YAAY,CAAC,CAAC;4BACjD,CAAC;wBACH,CAAC;wBAED,OAAOlF;oBACT;gBACF;gBACAoF,KAAK,CAAC9C,UAAY,CAAC,QAAQ,EAAEA,QAAQ,IAAI,CAAC;gBAC1C+C,SAAS,CAAC/C,UAAY;oBACpB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,QAAQ,CAAC;gBACrC;gBACAwC,OAAO,CAACxC,SAAS9D,UAAY;oBAC3B,IAAIwB,MAAM,CAAC,QAAQ,EAAEsC,QAAQ,OAAO,CAAC;oBAErC,IAAI9D,SAAS;wBACX,4EAA4E;wBAC5E,IAAIA,QAAQuG,IAAI,EAAE/E,OAAO,CAAC,KAAK,EAAExB,QAAQuG,IAAI,CAAC,CAAC;wBAC/C,IAAIC,MAAMC,OAAO,CAACzG,QAAQ0G,YAAY,GAAG;4BACvC,4EAA4E;4BAC5ElF,OAAO,CAAC,eAAe,EAAExB,QAAQ0G,YAAY,CAACC,IAAI,CAAC,KAAK,CAAC;wBAC3D,OAAO,IAAI3G,QAAQ0G,YAAY,EAAE;4BAC/B,4EAA4E;4BAC5ElF,OAAO,CAAC,eAAe,EAAExB,QAAQ0G,YAAY,CAAC,CAAC;wBACjD,CAAC;oBACH,CAAC;oBAED,OAAOlF;gBACT;gBACAsF,OAAO;oBACLC,KAAK,CAACjD,SAASkD,SAAW;wBACxB,OAAO,CAAC,QAAQ,EAAElD,QAAQ,OAAO,EAAEkD,OAAO,CAAC;oBAC7C;oBACAnE,KAAK,CAACiB,UAAY;wBAChB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,MAAM,CAAC;oBACnC;oBACAqC,QAAQ,CAACrC,SAASmD,UAAUD,SAAW;wBACrC,OAAO,CAAC,QAAQ,EAAElD,QAAQ,SAAS,EAAEmD,SAAS,OAAO,EAAED,OAAO,CAAC;oBACjE;gBACF;gBACAE,UAAU,CAACpD,UAAY;oBACrB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,SAAS,CAAC;gBACtC;gBACAqD,SAAS,CAACrD,SAASsD,YAAc;oBAC/B,OAAO,CAAC,QAAQ,EAAEtD,QAAQ,UAAU,EAAEsD,UAAU,CAAC;gBACnD;gBACAC,OAAO,CAACvD,SAASlB,SAAW;oBAC1B,OAAO,CAAC,QAAQ,EAAEkB,QAAQ,cAAc,EAAElB,UAAU,MAAM,CAAC;gBAC7D;gBACA0E,WAAW;oBACTC,MAAM,CAACA,OAAS;wBACd,OAAO,CAAC,kBAAkB,EAAEA,KAAK,CAAC;oBACpC;oBACAhC,OAAO,CAACzB,SAASyD,OAAS;wBACxB,OAAO,CAAC,QAAQ,EAAEzD,QAAQ,WAAW,EAAEyD,KAAK,CAAC;oBAC/C;oBACA1E,KAAK,CAACiB,UAAY;wBAChB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,UAAU,CAAC;oBACvC;gBACF;gBACA0D,QAAQ,CAAC1D,UAAY;oBACnB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,WAAW,CAAC;gBACxC;gBACA2D,SAAS,CAAC3D,UAAY;oBACpB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,QAAQ,CAAC;gBACrC;gBACA3C,UAAU,CAAC2C,UAAY;oBACrB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,SAAS,CAAC;gBACtC;gBACA4D,SAAS,CAAC5D,UAAY;oBACpB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,eAAe,CAAC;gBAC5C;gBACA6D,QAAQ,CAAC7D,UAAY;oBACnB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,OAAO,CAAC;gBACpC;gBACA8D,YAAY,CAAC9D,UAAY;oBACvB,OAAO,CAAC,QAAQ,EAAEA,QAAQ,YAAY,CAAC;gBACzC;YACF;YAEAqD,SAAS,CAACC,YAAyB;gBACjC,OAAO,CAAC,UAAU,EAAEA,UAAU,CAAC;YACjC;YAEAK,SAAS,IAAM;gBACb,OAAO;YACT;YAEA,wBAAwB;YACxBI,cAAc;gBACZC,UAAU;oBACR,wBAAwB;oBACxBA,UAAU,CAAC1H,gBAAkB;wBAC3B,OAAO,CAAC,cAAc,EAAEA,cAAc,SAAS,CAAC;oBAClD;oBAEAoE,QAAQ;wBACN3B,KAAIzC,aAAa,EAAE0D,OAAO,EAAE;4BAC1B,OAAO,CAAC,cAAc,EAAE1D,cAAc,QAAQ,EAAE0D,QAAQ,SAAS,CAAC;wBACpE;wBAEAiD,KAAI3G,aAAa,EAAE0D,OAAO,EAAEiE,SAAS,EAAEC,iBAAiB,EAAE;4BACxD,IAAIxG,MAAM,CAAC,cAAc,EAAEpB,cAAc,QAAQ,EAAE0D,QAAQ,UAAU,EAAEiE,UAAU,CAAC,CAAC;4BAEnF,IAAIC,sBAAsBnG,WAAW;gCACnCL,OAAO,CAAC,mBAAmB,EAAEwG,kBAAkBlG,QAAQ,GAAG,CAAC;4BAC7D,CAAC;4BAED,OAAON;wBACT;oBACF;oBACAyG,aAAa,CAAC7H,eAAe0D,UAAY;wBACvC,OAAO,CAAC,cAAc,EAAE1D,cAAc,QAAQ,EAAE0D,QAAQ,qBAAqB,CAAC;oBAChF;oBACAoE,YAAY,CAAC9H,eAAe0D,SAASiE,YAAc;wBACjD,OAAO,CAAC,cAAc,EAAE3H,cAAc,QAAQ,EAAE0D,QAAQ,UAAU,EAAEiE,UAAU,YAAY,CAAC;oBAC7F;oBACAI,SAAS,CAAC/H,eAAe2H,WAAWC,oBAAsB;wBACxD,IAAIxG,MAAM,CAAC,cAAc,EAAEpB,cAAc,UAAU,EAAE2H,UAAU,CAAC,CAAC;wBAEjE,IAAIC,sBAAsBnG,WAAW;4BACnCL,OAAO,CAAC,kBAAkB,EAAEwG,kBAAkBlG,QAAQ,GAAG,CAAC;wBAC5D,CAAC;wBAED,OAAON;oBACT;gBACF;gBAEA4G,WAAW;oBACT,wBAAwB;oBACxBC,UAAU,CAACC,eAAerI,QAAU;wBAClC,OAAO,CAAC,cAAc,EAAEqI,cAAc,CAAC,EAAErI,MAAM,SAAS,CAAC;oBAC3D;oBACAyB,UAAU,CAAC4G,eAAerI,QAAU;wBAClC,OAAO,CAAC,UAAU,EAAEqI,cAAc,CAAC,EAAErI,MAAM,mBAAmB,CAAC;oBACjE;oBACAqB,SAAS,CAAClB,eAAeH,OAAOsB,YAAc;wBAC5C,OAAO,CAAC,UAAU,EAAEnB,cAAc,CAAC,EAAEH,MAAM,UAAU,EAAEsB,UAAU,CAAC;oBACpE;gBACF;YACF;YAEA,iBAAiB;YACjBoB,MAAKC,MAAM,EAAE;gBACX,OAAO,CAAC,OAAO,EAAEA,OAAO,CAAC;YAC3B;YAEA2F,WAAU;gBACR,OAAO;YACT;YAEAC,qBAAoB;gBAClB,OAAO;YACT;YAEAxG,cAAa;gBACX,OAAO;YACT;YAEAyG,qBAAoB;gBAClB,OAAO;YACT;QACF;QAEAC,iBAAgBlH,GAAG,EAAE;YACnB,MAAMmH,cAAcxI,KAAKY,gBAAgB,CAAC6H,GAAG,CAACpH;YAC9C,MAAMqH,SAAS1I,KAAKY,gBAAgB,CAAC6H,GAAG,CAAC;YACzC,MAAME,MAAM3E,KAAK2E,GAAG;YAEpB,IAAIH,eAAeG,MAAMH,YAAYI,cAAc,EAAE;gBACnD,OAAOJ,YAAYI,cAAc,GAAGD;YACtC,CAAC;YAED,IAAID,UAAUC,MAAMD,OAAOE,cAAc,EAAE;gBACzC,OAAOF,OAAOE,cAAc,GAAGD;YACjC,CAAC;YAED,OAAO,KAAK;QACd;QAEAE,uBAAsBC,GAAQ,EAAO;YACnC,IAAIA,QAAQ,IAAI,EAAE,OAAO,IAAI;YAE7B,IAAI,OAAOA,QAAQ,UAAU;gBAC3B,IAAIzC,MAAMC,OAAO,CAACwC,MAAM;oBACtB,OAAOA,IAAIC,GAAG,CAAC,CAACC,OAAShJ,KAAK6I,qBAAqB,CAACG;gBACtD,CAAC;gBAED,MAAMC,SAAc,CAAC;gBAErB,KAAK,MAAMC,OAAOC,OAAOC,IAAI,CAACN,KAAM;oBAClC,sCAAsC;oBACtC,IAAI;wBAAC;wBAAe;wBAAS;qBAAO,CAACO,QAAQ,CAACH,MAAM;wBAClDD,MAAM,CAACC,IAAI,GAAGtK,cAAckK,GAAG,CAACI,IAAI;wBACpC,QAAQ;oBACV,CAAC;oBAED,IAAIA,QAAQ,4BAA4B;wBACtCD,OAAOK,0BAA0B,GAAG1K,cAAckK,GAAG,CAACI,IAAI;wBAC1D,QAAQ;oBACV,CAAC;oBAEDD,MAAM,CAACnK,iBAAiBoK,KAAK,GAAGlJ,KAAK6I,qBAAqB,CAACC,GAAG,CAACI,IAAI;gBACrE;gBAEA,OAAOD;YACT,CAAC;YAED,IAAI,OAAOH,QAAQ,UAAU,OAAOA,IAAInH,QAAQ;YAEhD,OAAOmH;QACT;QAEAS,mBAAkBC,MAAM,EAAE3J,OAAO,EAAE;YACjC,MAAM4J,UAAkC;gBACtC,cAAc,CAAC,uDAAuD,EAAE9J,QAAQ,CAAC,CAAC;YACpF;YAEA,IAAIE,SAAS6J,iBAAiB,KAAK,EAAED,QAAQ3I,aAAa,GAAG,CAAC,IAAI,EAAEd,KAAKF,KAAK,CAAC,CAAC;YAEhF,+CAA+C;YAC/C,IAAID,SAAS8J,WAAWjI,WAAW;gBACjC+H,OAAO,CAAC,qBAAqB,GAAGlH,mBAAmB1C,SAAS8J;YAC9D,CAAC;YAED,IAAIC;YAEJ,8DAA8D;YAC9D,kCAAkC;YAElC,0FAA0F;YAC1F,IAAI/J,SAASgK,UAAUnI,WAAW;gBAChC,MAAMoI,OAAO,IAAIC;gBACjB,IAAK,IAAIC,IAAI,GAAGA,IAAInK,QAAQgK,KAAK,CAACI,MAAM,EAAE,EAAED,EAAG;oBAC7CF,KAAKI,MAAM,CAAC,CAAC,IAAI,EAAEF,EAAE,CAAC,EAAEnK,QAAQgK,KAAK,CAACG,EAAE,CAACG,IAAI,EAAEtK,QAAQgK,KAAK,CAACG,EAAE,CAACI,IAAI;gBACtE;gBAEAN,KAAKI,MAAM,CAAC,gBAAgBG,KAAKC,SAAS,CAAC;oBAAE,GAAGzK,QAAQ+J,IAAI;oBAAEC,OAAOnI;gBAAU;gBAE/EkI,OAAOE;YAEP,yHAAyH;YAC3H,OAAO,IAAIjK,SAAS+J,SAASlI,WAAW;gBACtC,IAAI7B,QAAQ+J,IAAI,YAAYG,UAAU;oBACpCH,OAAO/J,QAAQ+J,IAAI;gBACnB,yHAAyH;gBAC3H,OAAO;oBACLA,OAAOS,KAAKC,SAAS,CAACtK,KAAK6I,qBAAqB,CAAChJ,QAAQ+J,IAAI;oBAC7DH,OAAO,CAAC,eAAe,GAAG,CAAC,gBAAgB,CAAC;gBAC9C,CAAC;YACH,CAAC;YAED,wEAAwE;YACxE,IAAI5J,SAAS4J,SAAS;gBACpBN,OAAOoB,MAAM,CAACd,SAAS5J,QAAQ4J,OAAO;YACxC,CAAC;YAED,OAAO;gBACLG;gBACAH;gBACAD;YACF;QACF;QAEAgB,2BAA0B;YACxB,MAAM7B,MAAM3E,KAAK2E,GAAG;YAEpB,KAAK,MAAM,CAACO,KAAKuB,MAAM,IAAIzK,KAAKY,gBAAgB,CAAC8J,OAAO,GAAI;gBAC1D,gBAAgB;gBAChB,4DAA4D;gBAC5D,+BAA+B;gBAC/B,KAAK;gBACL,MAAM;gBACN,qCAAqC;gBACrC,IAAID,MAAM7B,cAAc,GAAGD,KAAK,QAAQ;gBAExC,8CAA8C;gBAC9C3I,KAAKY,gBAAgB,CAAC+J,MAAM,CAACzB;gBAC7B,wDAAwD;gBACxD,IAAIA,QAAQ,UAAUlJ,KAAKO,mBAAmB,GAAG,KAAK;YACxD;YAEA,wCAAwC;YACxC,IAAIP,KAAKY,gBAAgB,CAACgK,IAAI,KAAK,GAAG;gBACpC5K,KAAKQ,0BAA0B,GAAG,KAAK;YACzC,OAAO;gBACLR,KAAKQ,0BAA0B,GAAG,IAAI;gBACtC,sBAAsB;gBACtBqK,WAAW,IAAM;oBACf,qEAAqE;oBACrE7K,KAAKwK,uBAAuB;gBAC9B,GAAG;YACL,CAAC;QACH;QAEA,0HAA0H,GAC1HM,gBAAezJ,GAAG,EAAEoI,OAAO,EAAE;YAC3B,IAAIsB,cAAc,KAAK;YAEvB,4BAA4B;YAC5B,MAAMC,YAAYvB,QAAQhB,GAAG,CAAC;YAC9B,MAAMwC,aAAaxB,QAAQhB,GAAG,CAAC;YAC/B,MAAMyC,QAAQlH,KAAK2E,GAAG,KAAKwC,OAAOF,cAAc;YAChD,MAAMvC,SAASe,QAAQhB,GAAG,CAAC;YAC3B,6CAA6C;YAC7C,MAAM2C,WAAW3B,QAAQhB,GAAG,CAAC,yBAAyB/G;YACtD,MAAMkB,QAAQ6G,QAAQhB,GAAG,CAAC;YAE1BzI,KAAKU,MAAM,CAAC+H,GAAG,CAACpH,MAAMgK,uBAAuB;gBAC3CL,WAAWA,YAAYG,OAAOH,aAAatJ,SAAS;gBACpD4J,UAAUL,aAAaE,OAAOF,cAAc,OAAOvJ,SAAS;gBAC5D6J,KAAK3I,QAAQuI,OAAOvI,SAASlB,SAAS;YACxC;YAEA,+DAA+D;YAC/D,IAAIsJ,cAAc,KAAK;gBACrBD,cAAc,IAAI;gBAElB,6EAA6E;gBAC7E/K,KAAKY,gBAAgB,CAAC4K,GAAG,CAACnK,KAAK;oBAC7BA;oBACAuH,gBAAgBsC;oBAChBE;gBACF;gBAEA,qEAAqE;gBACrE,IAAIA,UAAU;oBACZpL,KAAKY,gBAAgB,CAAC4K,GAAG,CAACJ,UAAU;wBAClC/J;wBACAuH,gBAAgBsC;wBAChBE;oBACF;gBACF,CAAC;YACH,CAAC;YAED,uEAAuE;YACvE,IAAI1C,QAAQ;gBACV,MAAMuC,aAAaxB,QAAQhB,GAAG,CAAC;gBAC/B,MAAMgD,cAAczH,KAAK2E,GAAG,KAAKwC,OAAOF,cAAc;gBACtD,gBAAgB;gBAChB,6EAA6E;gBAC7E,MAAM;gBACNjL,KAAKO,mBAAmB,GAAG,IAAI;gBAC/BwK,cAAc,IAAI;gBAElBF,WAAW,IAAM;oBACf7K,KAAKO,mBAAmB,GAAG,KAAK;gBAClC,GAAGkL;gBAEHzL,KAAKY,gBAAgB,CAAC4K,GAAG,CAAC,UAAU;oBAClCnK,KAAK;oBACLuH,gBAAgB6C;oBAChBL;gBACF;gBAEA,IAAIA,UAAU;oBACZpL,KAAKY,gBAAgB,CAAC4K,GAAG,CAACJ,UAAU;wBAClC/J,KAAK;wBACLuH,gBAAgB6C;wBAChBL;oBACF;gBACF,CAAC;YACH,CAAC;YAED,IAAIL,eAAe,CAAC/K,KAAKQ,0BAA0B,EAAE;gBACnDR,KAAKwK,uBAAuB;YAC9B,CAAC;YACD,OAAOO,cAAcK,WAAW1J,SAAS;QAC3C;QAEA,MAAMgK,aAAY7L,OAAO,EAAE;YACzB,MAAMwB,MAAMxB,QAAQwB,GAAG,CAACsK,UAAU,CAAC,cAAc9L,QAAQwB,GAAG,GAAG,CAAC,EAAErB,KAAKG,OAAO,CAAC,EAAE,EAAEH,KAAKL,OAAO,CAAC,EAAEE,QAAQwB,GAAG,CAAC,CAAC;YAC/G,MAAMuK,UAAU5L,KAAKuJ,iBAAiB,CAAC1J,QAAQ2J,MAAM,EAAE3J,QAAQgM,kBAAkB;YAEjFxM,OAAOyM,KAAK,CAAC,CAAC,mBAAmB,EAAEzK,IAAI,CAAC,EAAE,iBAAiB;gBAAE,GAAGuK,OAAO;gBAAEnC,SAAS;oBAAE,GAAGmC,QAAQnC,OAAO;oBAAE3I,eAAe;gBAAgB;YAAE;YACzI,MAAMiL,WAAW,MAAMvM,MAAM6B,KAAKuK;YAClCvM,OAAOyM,KAAK,CAAC,CAAC,qBAAqB,EAAEzK,IAAI,aAAa,EAAE0K,SAASC,MAAM,CAAC,GAAG,EAAED,SAASE,UAAU,CAAC,CAAC;YAElG,uDAAuD;YACvD,MAAMb,WAAWpL,KAAK8K,cAAc,CAAC9K,KAAKkM,WAAW,CAACrM,QAAQwB,GAAG,EAAExB,QAAQ2J,MAAM,GAAGuC,SAAStC,OAAO;YACpG,IAAI2B,UAAUvL,QAAQuL,QAAQ,GAAGA;YAEjC,IAAIW,SAASC,MAAM,GAAG,OAAOD,SAASC,MAAM,IAAI,KAAK;gBACnD3M,OAAOyM,KAAK,CAAC,CAAC,WAAW,EAAEzK,IAAI,QAAQ,CAAC;gBAExC,IAAI0K,SAASC,MAAM,KAAK,KAAK;oBAC3B3M,OAAOyM,KAAK,CAAC,CAAC,WAAW,EAAEzK,IAAI,iBAAiB,CAAC;oBACjD,oDAAoD;oBACpD,IAAIxB,QAAQsM,UAAU,MAAMnM,KAAKK,aAAa,EAAE;wBAC9ChB,OAAOyM,KAAK,CAAC,CAAC,WAAW,EAAEzK,IAAI,sCAAsC,CAAC,EAAE,iBAAiBuK;wBACzF,iEAAiE;wBACjE,0CAA0C;wBAC1C/L,QAAQuM,MAAM,CAAC;4BACbC,IAAI,KAAK;4BACTL,QAAQD,SAASC,MAAM;4BACvBM,OAAO;wBACT;wBACA;oBACF,CAAC;oBAED,kCAAkC;oBAClCtM,KAAKa,aAAa,CAACwK,sBAAsB,CAACU,SAASC,MAAM,EAAED,SAAStC,OAAO,CAAChB,GAAG,CAAC,yBAAyB;oBAEzG,MAAM8D,aAAaR,SAAStC,OAAO,CAAChB,GAAG,CAAC;oBACxC,IAAI8D,YAAY,MAAMxN,MAAMoM,OAAOoB,cAAc;oBACjD,2CAA2C;oBAC3C,MAAMR,SAASS,IAAI;oBAEnB,OAAO,MAAM3M,QAAQ4M,YAAY,GAAG5M;gBACtC,CAAC;gBAEDA,QAAQuM,MAAM,CAAC;oBAAEC,IAAI,KAAK;oBAAEL,QAAQD,SAASC,MAAM;oBAAEpC,MAAMS,KAAKC,SAAS,CAAC,MAAMyB,SAASS,IAAI;gBAAI;gBACjG;YACF,CAAC;YAED,MAAME,QAAQX,SAASC,MAAM,KAAK;YAClC,MAAMQ,OAAOE,QAAQhL,YAAY,MAAMqK,SAASS,IAAI,EAAE;YACtD,oDAAoD;YACpD3M,QAAQ8M,OAAO,CAAC;gBAAEN,IAAI,IAAI;gBAAEL,QAAQD,SAASC,MAAM;gBAAEpC,MAAMS,KAAKC,SAAS,CAACkC;YAAM;QAClF;QAEAN,aAAY7K,GAAG,EAAEmI,MAAM,EAAE;YACvB,MAAMoD,QAAQvL,IAAIwL,KAAK,CAAC;YACxB,MAAMC,iBAAiBF,KAAK,CAACA,MAAM3C,MAAM,GAAG,EAAE;YAE9C,IAAI6C,mBAAmB,cAAcA,mBAAmB,UAAU;gBAChE,OAAOzL;YACT,CAAC;YAED,IAAIyL,mBAAmB,eAAeF,KAAK,CAACA,MAAM3C,MAAM,GAAG,EAAE,KAAK,OAAO;gBACvE2C,MAAMG,MAAM,CAAC,CAAC;gBACdH,MAAMI,IAAI,CAAC;YACb,OAAO;gBACLJ,MAAMG,MAAM,CAAC,CAAC;gBACdH,MAAMI,IAAI,CAAC;YACb,CAAC;YAED,IAAIJ,KAAK,CAACA,MAAM3C,MAAM,GAAG,EAAE,KAAK,aAAa;gBAC3C2C,MAAMG,MAAM,CAAC,CAAC;YAChB,CAAC;YAED,IAAIvD,WAAW,YAAYsD,mBAAmB,YAAY;gBACxD,OAAO,CAAC,CAAC,EAAEF,MAAMpG,IAAI,CAAC,KAAK,CAAC;YAC9B,CAAC;YAED,OAAOoG,MAAMpG,IAAI,CAAC;QACpB;QAEA,MAAMyG,gBAAeC,OAA2B,EAAE;YAChD,MAAMC,QAAQD,QAAQ7L,GAAG,CAAC+L,SAAS,CAACF,QAAQ7L,GAAG,CAACgM,OAAO,CAAC;YACxD,MAAMT,QAAQO,MAAMN,KAAK,CAAC;YAC1B,kBAAkB;YAClBD,MAAMU,KAAK;YACX,mBAAmB;YACnB,IAAIV,KAAK,CAAC,EAAE,EAAEjB,WAAW,MAAMiB,MAAMU,KAAK;YAC1C,0EAA0E;YAC1EJ,QAAQ7L,GAAG,GAAG,CAAC,EAAErB,KAAKG,OAAO,CAAC,EAAE,EAAEH,KAAKL,OAAO,CAAC,CAAC,EAAEiN,MAAMpG,IAAI,CAAC,KAAK,CAAC;YAEnE,MAAMnF,MAAMrB,KAAKkM,WAAW,CAACgB,QAAQ7L,GAAG,EAAE6L,QAAQ1D,MAAM;YAExD,IAAI0D,QAAQK,eAAe,KAAK,KAAK,EAAE;gBACrC,MAAMvN,KAAK0L,WAAW,CAACwB;gBAEvB;YACF,CAAC;YAED,MAAMM,QAAQxN,KAAKU,MAAM,CAAC+H,GAAG,CAACpH;YAE9B,IAAImM,UAAU9L,WAAW;gBACvB8L,MAAMC,WAAW,CAACP;YACpB,OAAO;gBACL,sBAAsB;gBACtB,MAAMQ,cAAc,IAAIhO,MAAMM,MAAM;oBAAEqB;oBAAKZ,kBAAkBT,KAAKS,gBAAgB;gBAAC;gBAEnF,uBAAuB;gBACvBiN,YAAYD,WAAW,CAACP;gBACxB,aAAa;gBACblN,KAAKU,MAAM,CAAC8K,GAAG,CAACnK,KAAKqM;YACvB,CAAC;QACH;QAEA,MAAMD,aAAYjE,MAAM,EAAEnI,GAAG,EAAExB,OAAO,EAAE;YACtC,IAAI,CAACG,KAAKG,OAAO,CAACwL,UAAU,CAAC,0BAA0BtK,GAAG,CAAC,EAAE,KAAK,KAAK;gBACrE,MAAMsM,SAAS,MAAMnO,MAAM,CAAC,EAAEQ,KAAKG,OAAO,CAAC,EAAEkB,IAAI,CAAC,EAAErB,KAAKuJ,iBAAiB,CAACC,QAAQ3J;gBAEnF,IAAI,CAAC8N,OAAOtB,EAAE,EAAE;oBACd,MAAMuB,MAAO,MAAMD,OAAOnB,IAAI,GAAGqB,KAAK,CAAC,IAAM,CAAC;oBAC9C,gEAAgE;oBAChE,IAAI,CAACD,KAAKhE,MAAM,MAAM,IAAI7J,MAAM,CAAC,OAAO,EAAE6N,IAAIzM,OAAO,IAAIwM,OAAO1B,UAAU,CAAC,CAAC,EAAC;oBAC7E,MAAM,IAAIlM,MAAMsK,KAAKC,SAAS,CAACsD,MAAK;gBACtC,CAAC;gBAED,OAAOD,OAAO3B,MAAM,KAAK,MAAQ,MAAM2B,OAAOnB,IAAI,KAAc9K,SAAS;YAC3E,CAAC;YAED,OAAO,MAAM,IAAIoM,QAAQ,OAAOnB,SAASP,SAAW;gBAClD,MAAMR,UAA8B;oBAClCvK;oBACAmI;oBACAqC,oBAAoBhM;oBACpBsM,YAAY;oBACZM,cAAc,eAAgBb,OAA2B,EAAE;wBACzD,MAAM5L,KAAKiN,cAAc,CAACrB;oBAC5B;oBACAe,SAAS,CAACoB,OAAS;wBACjBpB,QAAQoB,KAAK/B,MAAM,KAAK,MAAM3B,KAAK2D,KAAK,CAACD,KAAKnE,IAAI,IAAI,QAAQlI,SAAS;oBACzE;oBACA0K;oBACAmB,iBAAiB1N,SAAS0N;gBAC5B;gBAEA,MAAMvN,KAAKiN,cAAc,CAACrB;YAC5B;QACF;QAEA,MAAMnD,KAAiCpH,GAAW,EAAExB,OAA2D,EAAE;YAC/G,OAAOhB,SAAS,MAAMmB,KAAKyN,WAAW,CAAC,OAAOpM,KAAKxB;QACrD;QAEA,MAAMoO,MAAkC5M,GAAW,EAAExB,OAA2D,EAAE;YAChH,OAAOhB,SAAS,MAAMmB,KAAKyN,WAAW,CAAC,QAAQpM,KAAKxB;QACtD;QAEA,MAAM8K,QAAOtJ,GAAW,EAAExB,OAA2D,EAAE;YACrFhB,SAAS,MAAMmB,KAAKyN,WAAW,CAAC,UAAUpM,KAAKxB;QACjD;QAEA,MAAMqO,OAAmC7M,GAAW,EAAExB,OAA2D,EAAE;YACjH,OAAOhB,SAAS,MAAMmB,KAAKyN,WAAW,CAAC,SAASpM,KAAKxB;QACvD;QAEA,MAAMsO,KAAc9M,GAAW,EAAExB,OAA2D,EAAE;YAC5F,OAAOhB,SAAS,MAAMmB,KAAKyN,WAAW,CAAC,OAAOpM,KAAKxB;QACrD;QAEA,MAAMuO,aAAYpM,SAAS,EAAEZ,SAAS,EAAEiN,QAAQ,EAAE;YAChDA,WAAW/O,sBAAsB+O;YAEjC,MAAMrO,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACC,GAAG,CAACL,WAAWZ,WAAWiN;QAC1E;QAEA,MAAMC,cAAatM,SAAS,EAAEZ,SAAS,EAAEgB,SAAS,EAAEmM,UAAU,KAAK,EAAE;YACnE,IAAI,CAACA,SAAS;gBACZ,MAAMT,QAAQpL,GAAG,CACfN,UAAU2G,GAAG,CAAC,OAAOsF,WAAa;oBAChC,MAAMrO,KAAKoO,WAAW,CAACpM,WAAWZ,WAAWiN;gBAC/C;gBAEF;YACF,CAAC;YAED,KAAK,MAAMA,YAAYjM,UAAW;gBAChC,MAAMpC,KAAKoO,WAAW,CAACpM,WAAWZ,WAAWiN;YAC/C;QACF;QAEA,MAAMG,SAAQ7K,OAAO,EAAElB,MAAM,EAAEoE,MAAM,EAAE8C,MAAM,EAAE;YAC7C,MAAM3J,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACX,MAAM,CAACrC,SAASlB,QAAQoE,SAAS;gBAAE8C;YAAO;QACpF;QAEA,MAAM8E,iBAAgBzM,SAAS,EAAES,MAAM,EAAE;YACvC,MAAMzC,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACjB,IAAI,CAACR,WAAWS;QAC9D;QAEA,MAAMiM,mBAAkB/K,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YAC7C,OAAO,MAAM3J,KAAKiO,IAAI,CAA4BjO,KAAKe,MAAM,CAACsD,MAAM,CAACG,OAAO,CAACG,KAAK,CAAChB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC9G;QAEA,MAAMgF,eAAchL,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACzC,OAAO,MAAM3J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACsD,MAAM,CAACvC,QAAQ,CAAC6B,UAAU;gBAAEiG;gBAAMD;YAAO;QAC9F;QAEA,MAAMiF,aAAYjL,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACvC,OAAO,MAAM3J,KAAKiO,IAAI,CAAejO,KAAKe,MAAM,CAACsD,MAAM,CAACQ,MAAM,CAAClB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC1F;QAEA,MAAMkF,gCAA+BjF,IAAI,EAAE;YACzC,OAAO,MAAM5J,KAAKiO,IAAI,CAA4BjO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACA,QAAQ,CAAC3H,KAAKC,aAAa,GAAG;gBAAE2J;YAAK;QAC3H;QAEA,MAAMkF,aAAYlF,IAAI,EAAE;YACtB,OAAO,MAAM5J,KAAKiO,IAAI,CAAejO,KAAKe,MAAM,CAACsD,MAAM,CAAC3B,GAAG,IAAI;gBAAEkH;YAAK;QACxE;QAEA,MAAMmF,+BAA8BnF,IAAI,EAAEjG,OAAO,EAAE;YACjD,OAAO,MAAM3D,KAAKiO,IAAI,CAA4BjO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAAC3B,GAAG,CAAC1C,KAAKC,aAAa,EAAE0D,UAAU;gBAAEiG;YAAK;QACtI;QAEA,MAAMoF,yBAAwBC,YAAY,EAAErF,IAAI,EAAE;YAChD,IAAIA,KAAKsF,IAAI,EAAE;gBACbtF,KAAKsF,IAAI,GAAG,MAAM3P,YAAYqK,KAAKsF,IAAI;YACzC,CAAC;YAED,OAAO,MAAMlP,KAAKiO,IAAI,CAAejO,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAACC,IAAI,CAAC6H,eAAe;gBAAErF;YAAK;QAC/F;QAEA,MAAMuF,oBAAmBxL,OAAO,EAAE9D,OAAO,EAAE8J,MAAM,EAAE;YACjD,MAAMG,OAAO,IAAIC;YACjBD,KAAKI,MAAM,CAAC,QAAQrK,QAAQuP,IAAI,CAACjF,IAAI,EAAEtK,QAAQuP,IAAI,CAAChF,IAAI;YACxDN,KAAKI,MAAM,CAAC,QAAQrK,QAAQuK,IAAI;YAChCN,KAAKI,MAAM,CAAC,eAAerK,QAAQwP,WAAW;YAC9CvF,KAAKI,MAAM,CAAC,QAAQrK,QAAQyP,IAAI;YAEhC,OAAO,MAAMtP,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACsD,MAAM,CAAC0C,QAAQ,CAACpD,UAAU;gBAAEiG,MAAME;gBAAMH;YAAO;QACpG;QAEA,MAAM4F,qBAAoB5L,OAAO,EAAEiG,IAAI,EAAE;YACvC,OAAO,MAAM5J,KAAKiO,IAAI,CAAkBjO,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAACzE,GAAG,CAACiB,UAAU;gBAAEiG;YAAK;QAC5F;QAEA,MAAM4F,mBAAkBxN,SAAS,EAAE4H,IAAI,EAAED,MAAM,EAAE;YAC/C,OAAO,MAAM3J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAACiB,KAAK,CAACf,YAAY;gBAAE4H;gBAAMC,OAAOD,KAAKC,KAAK;gBAAEF;YAAO;QAClH;QAEA,MAAM8F,cAAazN,SAAS,EAAE4H,OAAO,CAAC,CAAC,EAAED,MAAM,EAAE;YAC/C,OAAO,MAAM3J,KAAKiO,IAAI,CAAgBjO,KAAKe,MAAM,CAACe,QAAQ,CAACkB,OAAO,CAAChB,YAAY;gBAAE4H;gBAAMD;YAAO;QAChG;QAEA,MAAM+F,YAAW/L,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACtC,OAAO,MAAM3J,KAAKiO,IAAI,CAAcjO,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACjE,GAAG,CAACiB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC5F;QAEA,MAAMgG,sBAAqBhM,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YAChD,OAAO,MAAM3J,KAAKiO,IAAI,CAAwBjO,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACA,MAAM,CAACnB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC1G;QAEA,MAAMiG,qBAAoBhG,IAAI,EAAED,MAAM,EAAE;YACtC,OAAO,MAAM3J,KAAKiO,IAAI,CAAuBjO,KAAKe,MAAM,CAACe,QAAQ,CAACyB,MAAM,IAAI;gBAAEqG;gBAAMD;YAAO;QAC7F;QAEA,MAAMkG,eAAc7N,SAAS,EAAEnC,OAAO,EAAE8J,MAAM,EAAE;YAC9C,OAAO,MAAM3J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAACd,QAAQ,CAACgB,YAAY;gBAC/E4H,MAAM;oBACJQ,MAAMvK,QAAQuK,IAAI;oBAClB0F,QAAQjQ,QAAQiQ,MAAM,GAAG,MAAMvQ,YAAYM,QAAQiQ,MAAM,IAAIpO,SAAS;gBACxE;gBACAiI;YACF;QACF;QAEA,MAAMoG,mBAAkBpM,OAAO,EAAEe,MAAM,EAAEiF,MAAM,EAAE;YAC/C,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACG,OAAO,CAACC,IAAI,CAACd,SAASe,SAAS;gBAAEiF;YAAO;QAC/E;QAEA,MAAMqG,eAAchO,SAAS,EAAE2H,MAAM,EAAE;YACrC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACe,OAAO,CAACb,YAAY;gBACzD2H;YACF;QACF;QAEA,MAAMsG,iCAAgCjO,SAAS,EAAEqB,WAAW,EAAEsG,MAAM,EAAE;YACpE,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACsB,SAAS,CAACpB,WAAWqB,cAAc;gBAAEsG;YAAO;QACrF;QAEA,MAAMuG,aAAYvM,OAAO,EAAE1C,EAAE,EAAE0I,MAAM,EAAE;YACrC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAAC/B,KAAK,CAACqB,SAAS1C,KAAK;gBAAE0I;YAAO;QACpE;QAEA,MAAMwG,uBAAsBrQ,KAAK,EAAEsB,SAAS,EAAE;YAC5C,MAAMpB,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC9G,OAAO,CAACnB,KAAKC,aAAa,EAAEH,OAAOsB,YAAY;gBAAEsI,cAAc,IAAI;YAAC;QAC3H;QAEA,MAAM0G,gCAA+BxI,SAAS,EAAE;YAC9C,MAAM5H,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACK,OAAO,CAAChI,KAAKC,aAAa,EAAE2H;QAClF;QAEA,MAAMyI,aAAY1M,OAAO,EAAE;YACzB,MAAM3D,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACe,KAAK,CAACzB;QAC7C;QAEA,MAAM2M,+BAA8B1I,SAAS,EAAEjE,OAAO,EAAE;YACtD,MAAM3D,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAACuC,GAAG,CAAC5G,KAAKC,aAAa,EAAE0D,SAASiE;QAC9F;QAEA,MAAM2I,oBAAmB5M,OAAO,EAAEsD,SAAS,EAAE0C,MAAM,EAAE;YACnD,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAAC2C,OAAO,CAACrD,SAASsD,YAAY;gBAAE0C;YAAO;QAC7E;QAEA,MAAM6G,qBAAoB7M,OAAO,EAAEsL,YAAY,EAAE;YAC/C,MAAMjP,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAAC/B,KAAK,CAACzB,SAASsL;QAChE;QAEA,MAAMwB,mBAAkB9M,OAAO,EAAE4B,aAAa,EAAEoE,MAAM,EAAE;YACtD,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACiB,WAAW,CAAC3B,SAAS4B,gBAAgB;gBAAEoE;YAAO;QACrF;QAEA,MAAM+G,cAAahL,UAAU,EAAEiE,MAAM,EAAE;YACrC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACoB,MAAM,CAACC,aAAa;gBAAEiE;YAAO;QACpE;QAEA,MAAMgH,eAAc3O,SAAS,EAAEZ,SAAS,EAAEuI,MAAM,EAAE;YAChD,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACX,OAAO,CAACa,WAAWZ,YAAY;gBAAEuI;YAAO;QACjF;QAEA,MAAMiH,gBAAe5O,SAAS,EAAE6O,UAAU,EAAElH,MAAM,EAAE;YAClD,MAAM3J,KAAKiO,IAAI,CAACjO,KAAKe,MAAM,CAACe,QAAQ,CAACC,IAAI,CAACC,YAAY;gBACpD4H,MAAM;oBACJ3G,UAAU4N,WAAWC,KAAK,CAAC,GAAG,KAAK/H,GAAG,CAAC,CAAC9H,KAAOA,GAAGU,QAAQ;gBAC5D;gBACAgI;YACF;QACF;QAEA,MAAMoH,mCAAkCjR,KAAK,EAAE;YAC7C,MAAME,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC1G,QAAQ,CAACvB,KAAKC,aAAa,EAAEH,QAAQ;gBAAE4J,cAAc,IAAI;YAAC;QACjH;QAEA,MAAMsH,mBAAkBhP,SAAS,EAAEZ,SAAS,EAAEiN,QAAQ,EAAE;YACtDA,WAAW/O,sBAAsB+O;YAEjC,MAAMrO,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACC,GAAG,CAACL,WAAWZ,WAAWiN;QAC7E;QAEA,MAAM4C,oBAAmBjP,SAAS,EAAEZ,SAAS,EAAE;YAC7C,MAAMpB,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACM,GAAG,CAACV,WAAWZ;QAClE;QAEA,MAAM8P,sBAAqBlP,SAAS,EAAEZ,SAAS,EAAEiN,QAAQ,EAAE;YACzDA,WAAW/O,sBAAsB+O;YAEjC,MAAMrO,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACE,KAAK,CAACN,WAAWZ,WAAWiN;QAC/E;QAEA,MAAM8C,YAAWxN,OAAO,EAAEkD,MAAM,EAAE8C,MAAM,EAAE;YACxC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACC,GAAG,CAACjD,SAASkD,SAAS;gBAAE8C;YAAO;QAC5E;QAEA,MAAMyH,sBAAqBzN,OAAO,EAAEsB,OAAO,EAAE;YAC3C,MAAMjF,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACE,KAAK,CAACrB,SAASsB;QAC7D;QAEA,MAAMoM,qBAAoBrP,SAAS,EAAE2H,MAAM,EAAE;YAC3C,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAAC0B,KAAK,CAACxB,YAAY;gBAAE2H;YAAO;QACpE;QAEA,MAAM2H,oBAAmBtP,SAAS,EAAEZ,SAAS,EAAEqB,MAAM,EAAE4L,QAAQ,EAAE;YAC/DA,WAAW/O,sBAAsB+O;YAEjC,MAAMrO,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACI,IAAI,CAACR,WAAWZ,WAAWiN,UAAU5L;QACxF;QAEA,MAAM8O,eAAcrQ,SAAS,EAAEyI,MAAM,EAAE;YACrC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACC,QAAQ,CAACC,EAAE,CAACC,YAAY;gBAAEyI;YAAO;QACjE;QAEA,MAAM6H,sBAAqBtQ,SAAS,EAAEpB,KAAK,EAAEsB,SAAS,EAAEvB,OAAO,EAAE;YAC/D,MAAMG,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACC,QAAQ,CAACG,OAAO,CAACD,WAAWpB,OAAOsB,WAAWvB;QAC9E;QAEA,MAAM4R,wBAAuBvQ,SAAS,EAAEpB,KAAK,EAAE;YAC7C,MAAME,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACC,QAAQ,CAACQ,OAAO,CAACN,WAAWpB;QAC5D;QAEA,MAAM4R,mCAAkC/N,OAAO,EAAEiE,SAAS,EAAE+J,WAAW,EAAE7J,WAAW,EAAE;YACpF,OAAO,MAAM9H,KAAKmO,GAAG,CACnBnO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACI,UAAU,CAAC/H,KAAKC,aAAa,EAAE0D,SAASiE,YAC1E;gBACEgC,MAAM;oBACJ9B;gBACF;gBACA2B,SAAS;oBAAE3I,eAAe,CAAC,OAAO,EAAE6Q,YAAY,CAAC;gBAAC;YACpD;QAEJ;QAEA,MAAMC,iBAAgBjO,OAAO,EAAEe,MAAM,EAAEkF,IAAI,EAAED,MAAM,EAAE;YACnD,OAAO,MAAM3J,KAAKkO,KAAK,CAA4BlO,KAAKe,MAAM,CAACsD,MAAM,CAACG,OAAO,CAACC,IAAI,CAACd,SAASe,SAAS;gBAAEkF;gBAAMD;YAAO;QACtH;QAEA,MAAMkI,gBAAehS,OAAO,EAAE;YAC5B,MAAMiQ,SAASjQ,SAASiS,eAAe,MAAMvS,YAAYM,SAASiS,gBAAgBjS,SAASiS,YAAY;YAEvG,OAAO,MAAM9R,KAAKkO,KAAK,CAAclO,KAAKe,MAAM,CAACqH,OAAO,IAAI;gBAC1DwB,MAAM;oBACJmI,UAAUlS,QAAQkS,QAAQ,EAAEC;oBAC5BlC;gBACF;YACF;QACF;QAEA,MAAMmC,aAAYjQ,SAAS,EAAE4H,IAAI,EAAED,MAAM,EAAE;YACzC,OAAO,MAAM3J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACe,QAAQ,CAACe,OAAO,CAACb,YAAY;gBAAE4H;gBAAMD;YAAO;QAClG;QAEA,MAAMuI,gCAA+BlQ,SAAS,EAAE4H,IAAI,EAAED,MAAM,EAAE;YAC5D,MAAM3J,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACe,QAAQ,CAACsB,SAAS,CAACpB,WAAW4H,KAAK3I,EAAE,GAAG;gBAAE2I;gBAAMD;YAAO;QACpF;QAEA,MAAMwI,sBAAqBxO,OAAO,EAAEiG,IAAI,EAAE;YACxC,MAAM5J,KAAKkO,KAAK,CAAClO,KAAKe,MAAM,CAACsD,MAAM,CAACvC,QAAQ,CAAC6B,UAAU;gBAAEiG;YAAK;QAChE;QAEA,MAAMwI,WAAUzO,OAAO,EAAE1C,EAAE,EAAE2I,IAAI,EAAED,MAAM,EAAE;YACzC,OAAO,MAAM3J,KAAKkO,KAAK,CAAelO,KAAKe,MAAM,CAACsD,MAAM,CAAC/B,KAAK,CAACqB,SAAS1C,KAAK;gBAAE2I;gBAAMD;YAAO;QAC9F;QAEA,MAAM0I,qBAAoBvS,KAAK,EAAEsB,SAAS,EAAEwI,IAAI,EAAE;YAChD,OAAO,MAAM5J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC9G,OAAO,CAACnB,KAAKC,aAAa,EAAEH,OAAOsB,YAAY;gBACxHwI;gBACAC,OAAOD,KAAKC,KAAK;gBACjBH,cAAc,IAAI;YACpB;QACF;QAEA,MAAM4I,8BAA6B1K,SAAS,EAAEgC,IAAI,EAAE;YAClD,OAAO,MAAM5J,KAAKkO,KAAK,CAA4BlO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACK,OAAO,CAAChI,KAAKC,aAAa,EAAE2H,YAAY;gBAAEgC;YAAK;QACtI;QAEA,MAAM2I,WAAU5O,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACrC,OAAO,MAAM3J,KAAKkO,KAAK,CAAelO,KAAKe,MAAM,CAACsD,MAAM,CAACe,KAAK,CAACzB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC1F;QAEA,MAAM6I,6BAA4B5K,SAAS,EAAEjE,OAAO,EAAEiG,IAAI,EAAE;YAC1D,OAAO,MAAM5J,KAAKkO,KAAK,CAA4BlO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAACuC,GAAG,CAAC5G,KAAKC,aAAa,EAAE0D,SAASiE,YAAY;gBACvIgC;YACF;QACF;QAEA,MAAM6I,mBAAkB9O,OAAkB,EAAE+O,QAAmB,EAAE/I,MAAe,EAAiB;YAC/F,MAAM3J,KAAKiO,IAAI,CAACjO,KAAKe,MAAM,CAACsD,MAAM,CAACoC,GAAG,CAAC9C,UAAU;gBAAEiG,MAAM;oBAAE+I,OAAOD;gBAAS;gBAAG/I;YAAO;QACvF;QAEA,MAAMiJ,kBAAiBjP,OAAO,EAAEsD,SAAS,EAAE2C,IAAI,EAAED,MAAM,EAAE;YACvD,OAAO,MAAM3J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACsD,MAAM,CAAC2C,OAAO,CAACrD,SAASsD,YAAY;gBAAE2C;gBAAMD;YAAO;QACzG;QAEA,MAAMkJ,mBAAkBlP,OAAO,EAAEsL,YAAoB,EAAErF,IAAyB,EAAsC;YACpH,OAAO,MAAM5J,KAAKkO,KAAK,CAAkBlO,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAAC/B,KAAK,CAACzB,SAASsL,eAAe;gBAAErF;YAAK;QAC7G;QAEA,MAAMkJ,aAAY9Q,SAAS,EAAEZ,SAAS,EAAEwI,IAAI,EAAE;YAC5C,OAAO,MAAM5J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACe,QAAQ,CAACX,OAAO,CAACa,WAAWZ,YAAY;gBAAEwI;YAAK;QACrG;QAEA,MAAMmJ,iCAAgCjT,KAAK,EAAE8J,IAAI,EAAE;YACjD,OAAO,MAAM5J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC1G,QAAQ,CAACvB,KAAKC,aAAa,EAAEH,QAAQ;gBAC9G8J;gBACAC,OAAOD,KAAKC,KAAK;YACnB;QACF;QAEA,MAAMmJ,4BAA2B9R,SAAS,EAAEpB,KAAK,EAAED,OAAO,EAAE;YAC1D,OAAO,MAAMG,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACC,QAAQ,CAACO,QAAQ,CAACL,WAAWpB,OAAOD,UAAU;gBAChG+J,MAAM;oBACJqJ,MAAMtU,yBAAyBuU,aAAa;oBAC5CnF,MAAMlO;gBACR;gBACAgK,OAAOhK,QAAQgK,KAAK;gBACpBH,cAAc,IAAI;YACpB;QACF;QAEA,MAAMyJ,mBAAkBxP,OAAO,EAAE9D,OAAO,EAAE;YACxC,MAAMG,KAAKkO,KAAK,CAAClO,KAAKe,MAAM,CAACsD,MAAM,CAAC6C,KAAK,CAACvD,UAAU;gBAClDiG,MAAM;oBACJ,GAAG/J,OAAO;oBACVuT,4BAA4BvT,QAAQwT,uBAAuB,GACvD,IAAIrP,KAAKnE,QAAQwT,uBAAuB,EAAEpP,WAAW,KACrDpE,QAAQwT,uBAAuB;gBACrC;YACF;QACF;QAEA,MAAMC,oBAAmB3P,OAAO,EAAEsB,OAAO,EAAE2E,IAAI,EAAED,MAAM,EAAE;YACvD,OAAO,MAAM3J,KAAKkO,KAAK,CAAwBlO,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACE,KAAK,CAACrB,SAASsB,UAAU;gBAAE2E;gBAAMD;YAAO;QACnH;QAEA,MAAM4J,UAAS5P,OAAO,EAAEkD,MAAM,EAAE+C,IAAI,EAAED,MAAM,EAAE;YAC5C,OAAO,MAAM3J,KAAKkO,KAAK,CAAclO,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACC,GAAG,CAACjD,SAASkD,SAAS;gBAAE+C;gBAAMD;YAAO;QACrG;QAEA,MAAM6J,mBAAkB7P,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YAC7C,OAAO,MAAM3J,KAAKkO,KAAK,CAAgBlO,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACjE,GAAG,CAACiB,UAAU;gBAAEiG;gBAAMD;YAAO;QAC/F;QAEA,MAAM8J,mBAAkBzR,SAAS,EAAE0R,KAAK,EAAE/J,MAAe,EAAE;YACzD,OAAO,MAAM3J,KAAKkO,KAAK,CAAuBlO,KAAKe,MAAM,CAACe,QAAQ,CAAC0B,KAAK,CAACxB,YAAY;gBAAE4H,MAAM;oBAAE8J;gBAAM;gBAAG/J;YAAO;QACjH;QAEA,MAAMgK,oBAAmBhQ,OAAO,EAAE9D,OAAO,EAAE;YACzC,MAAMG,KAAKkO,KAAK,CAAClO,KAAKe,MAAM,CAACsD,MAAM,CAAC6C,KAAK,CAACvD,SAAS9D,QAAQ4C,MAAM,GAAG;gBAAEmH,MAAM/J;YAAQ;QACtF;QAEA,MAAM+T,aAAY1S,SAAS,EAAE0I,IAAI,EAAED,MAAM,EAAE;YACzC,OAAO,MAAM3J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACC,QAAQ,CAACC,EAAE,CAACC,YAAY;gBAAE0I;gBAAMD;YAAO;QAC7F;QAEA,MAAMkK,oBAAmB3S,SAAS,EAAEpB,KAAK,EAAEsB,SAAS,EAAEvB,OAAO,EAAE;YAC7D,OAAO,MAAMG,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACC,QAAQ,CAACG,OAAO,CAACD,WAAWpB,OAAOsB,WAAWvB,UAAU;gBAC1G+J,MAAM/J;gBACNgK,OAAOhK,QAAQgK,KAAK;YACtB;QACF;QAEA,MAAMiK,sBAAqB5S,SAAS,EAAEpB,KAAK,EAAE8J,IAAI,EAAE;YACjD,OAAO,MAAM5J,KAAKkO,KAAK,CAAiBlO,KAAKe,MAAM,CAACC,QAAQ,CAACQ,OAAO,CAACN,WAAWpB,QAAQ;gBAAE8J;YAAK;QACjG;QAEA,MAAMmK,mBAAkBpQ,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YAC7C,OAAO,MAAM3J,KAAKkO,KAAK,CAAuBlO,KAAKe,MAAM,CAACsD,MAAM,CAACkD,OAAO,CAAC5D,UAAU;gBAAEiG;gBAAMD;YAAO;QACpG;QAEA,MAAMqK,oBAAmBrQ,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YAC9C,OAAO,MAAM3J,KAAKkO,KAAK,CAA6BlO,KAAKe,MAAM,CAACsD,MAAM,CAACmD,MAAM,CAAC7D,UAAU;gBAAEiG;gBAAMD;YAAO;QACzG;QAEA,MAAMsK,gBAAe/S,SAAS,EAAEpB,KAAK,EAAED,OAAO,EAAE;YAC9C,OAAO,MAAMG,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACC,QAAQ,CAACQ,OAAO,CAACN,WAAWpB,OAAOD,UAAU;gBAAE+J,MAAM/J;YAAQ;QAClH;QAEA,MAAMqU,oBAAmBC,eAAe,EAAEC,eAAe,EAAE;YACzD,OAAO,MAAMpU,KAAKiO,IAAI,CAAyBjO,KAAKe,MAAM,CAACe,QAAQ,CAACgB,MAAM,CAACqR,kBAAkB;gBAC3FvK,MAAM;oBACJyK,oBAAoBD;gBACtB;YACF;QACF;QAEA,MAAME,kBAAiB3Q,OAAO,EAAE;YAC9B,OAAO,MAAM3D,KAAKyI,GAAG,CAA2BzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACC,MAAM,CAACC;QACtF;QAEA,MAAM4Q,iCAAgC5Q,OAAO,EAAEiE,SAAS,EAAE;YACxD,OAAO,MAAM5H,KAAKyI,GAAG,CACnBzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACI,UAAU,CAAC/H,KAAKC,aAAa,EAAE0D,SAASiE;QAE9E;QAEA,MAAM4M,kCAAiC7Q,OAAO,EAAE;YAC9C,OAAO,MAAM3D,KAAKyI,GAAG,CAAyCzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACG,WAAW,CAAC9H,KAAKC,aAAa,EAAE0D;QAClI;QAEA,MAAM8Q,sBAAqB;YACzB,OAAO,MAAMzU,KAAKyI,GAAG,CAAqBzI,KAAKe,MAAM,CAACsH,iBAAiB;QACzE;QAEA,MAAMqM,aAAY/Q,OAAO,EAAE9D,OAAO,EAAE;YAClC,OAAO,MAAMG,KAAKyI,GAAG,CAAkBzI,KAAKe,MAAM,CAACsD,MAAM,CAACC,SAAS,CAACX,SAAS9D;QAC/E;QAEA,MAAM8U,gBAAehR,OAAO,EAAEe,MAAM,EAAE;YACpC,OAAO,MAAM1E,KAAKyI,GAAG,CAA4BzI,KAAKe,MAAM,CAACsD,MAAM,CAACG,OAAO,CAACC,IAAI,CAACd,SAASe;QAC5F;QAEA,MAAMkQ,iBAAgBjR,OAAO,EAAE;YAC7B,OAAO,MAAM3D,KAAKyI,GAAG,CAA8BzI,KAAKe,MAAM,CAACsD,MAAM,CAACG,OAAO,CAACG,KAAK,CAAChB;QACtF;QAEA,MAAMkR,4BAA2B;YAC/B,OAAO,MAAM7U,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACuG,OAAO;QACjE;QAEA,MAAMwN,QAAOnR,OAAO,EAAElB,MAAM,EAAE;YAC5B,OAAO,MAAMzC,KAAKyI,GAAG,CAAazI,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACkC,GAAG,CAACnC,SAASlB;QAC5E;QAEA,MAAMsS,SAAQpR,OAAO,EAAE9D,OAAO,EAAE;YAC9B,OAAO,MAAMG,KAAKyI,GAAG,CAAezI,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACmC,IAAI,CAACpC,SAAS9D;QAC/E;QAEA,MAAMmV,YAAW/T,EAAE,EAAE;YACnB,OAAO,MAAMjB,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACe,QAAQ,CAACe,OAAO,CAAC5B;QACrE;QAEA,MAAMgU,mBAAkBjT,SAAS,EAAE;YACjC,OAAO,MAAMhC,KAAKyI,GAAG,CAA0BzI,KAAKe,MAAM,CAACe,QAAQ,CAACkB,OAAO,CAAChB;QAC9E;QAEA,MAAMkT,aAAYvR,OAAO,EAAE;YACzB,OAAO,MAAM3D,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACsD,MAAM,CAACvC,QAAQ,CAAC6B;QACtE;QAEA,MAAMwR,oBAAmBnT,SAAS,EAAE;YAClC,OAAO,MAAMhC,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACe,QAAQ,CAACd,QAAQ,CAACgB;QACxE;QAEA,MAAMoT,cAAa3S,MAAM,EAAE;YACzB,OAAO,MAAMzC,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAACG,EAAE,IAAI;gBAChE2H,MAAM;oBAAEyL,cAAc5S;gBAAO;YAC/B;QACF;QAEA,MAAM6S,UAAS3R,OAAO,EAAEiB,OAAO,EAAE;YAC/B,OAAO,MAAM5E,KAAKyI,GAAG,CAAezI,KAAKe,MAAM,CAACsD,MAAM,CAAC/B,KAAK,CAACqB,SAASiB;QACxE;QAEA,MAAM2Q,WAAU5R,OAAO,EAAE;YACvB,OAAO,MAAM3D,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACsD,MAAM,CAACQ,MAAM,CAAClB;QAClE;QAEA,MAAM6R,oBAAmB1V,KAAK,EAAEsB,SAAS,EAAE;YACzC,OAAO,MAAMpB,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC9G,OAAO,CAACnB,KAAKC,aAAa,EAAEH,OAAOsB,YAAY;gBAAEsI,cAAc,IAAI;YAAC;QAC/I;QAEA,MAAM+L,iBAAgB;YACpB,OAAO,MAAMzV,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACc,UAAU;QACpE;QAEA,MAAM6T,6BAA4B9N,SAAS,EAAE;YAC3C,OAAO,MAAM5H,KAAKyI,GAAG,CAA4BzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACK,OAAO,CAAChI,KAAKC,aAAa,EAAE2H;QACjH;QAEA,MAAM+N,gCAA+B;YACnC,OAAO,MAAM3V,KAAKyI,GAAG,CAA8BzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACA,QAAQ,CAAC3H,KAAKC,aAAa;QAClH;QAEA,MAAM2V,UAASjS,OAAO,EAAE9D,UAAU;YAAEgW,QAAQ,IAAI;QAAC,CAAC,EAAE;YAClD,OAAO,MAAM7V,KAAKyI,GAAG,CAAezI,KAAKe,MAAM,CAACsD,MAAM,CAACe,KAAK,CAACzB,SAAS9D,QAAQgW,MAAM;QACtF;QAEA,MAAMC,4BAA2BlO,SAAS,EAAEjE,OAAO,EAAE;YACnD,OAAO,MAAM3D,KAAKyI,GAAG,CAA4BzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAACuC,GAAG,CAAC5G,KAAKC,aAAa,EAAE0D,SAASiE;QAC7H;QAEA,MAAMmO,6BAA4BpS,OAAO,EAAE;YACzC,OAAO,MAAM3D,KAAKyI,GAAG,CAA8BzI,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAAC3B,GAAG,CAAC1C,KAAKC,aAAa,EAAE0D;QACtH;QAEA,MAAMqS,iBAAgBrS,OAAO,EAAE;YAC7B,OAAO,MAAM3D,KAAKyI,GAAG,CAAsBzI,KAAKe,MAAM,CAACsD,MAAM,CAACqC,OAAO,CAAC/C;QACxE;QAEA,MAAMsS,kBAAiBhH,YAAY,EAAE;YACnC,OAAO,MAAMjP,KAAKyI,GAAG,CAAkBzI,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAACC,IAAI,CAAC6H;QAC3E;QAEA,MAAMiH,mBAAkBvS,OAAO,EAAE;YAC/B,OAAO,MAAM3D,KAAKyI,GAAG,CAAoBzI,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAACzE,GAAG,CAACiB;QAC5E;QAEA,MAAMwS,kBAAiBxS,OAAO,EAAE;YAC9B,OAAO,MAAM3D,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACsD,MAAM,CAACrD,QAAQ,CAAC2C;QACtE;QAEA,MAAMyS,iBAAgBzS,OAAO,EAAE;YAC7B,OAAO,MAAM3D,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACsD,MAAM,CAACmB,YAAY,CAAC7B;QAC9E;QAEA,MAAM0S,WAAU3Q,UAAU,EAAE7F,OAAO,EAAE;YACnC,OAAO,MAAMG,KAAKyI,GAAG,CAAwBzI,KAAKe,MAAM,CAACsD,MAAM,CAACoB,MAAM,CAACC,YAAY7F;QACrF;QAEA,MAAMyW,YAAW3S,OAAO,EAAE;YACxB,OAAO,MAAM3D,KAAKyI,GAAG,CAA0BzI,KAAKe,MAAM,CAACsD,MAAM,CAACrB,OAAO,CAACW;QAC5E;QAEA,MAAM4S,YAAWvU,SAAS,EAAEZ,SAAS,EAAE;YACrC,OAAO,MAAMpB,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACe,QAAQ,CAACX,OAAO,CAACa,WAAWZ;QAChF;QAEA,MAAMoV,aAAYxU,SAAS,EAAEnC,OAAO,EAAE;YACpC,OAAO,MAAMG,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACe,QAAQ,CAACmB,QAAQ,CAACjB,WAAWnC;QACnF;QAEA,MAAM4W,wBAAuB;YAC3B,OAAO,MAAMzW,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACuH,iBAAiB;QAC3E;QAEA,MAAMoO,gCAA+B5W,KAAK,EAAE;YAC1C,OAAO,MAAME,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAAC1G,QAAQ,CAACvB,KAAKC,aAAa,EAAEH,QAAQ;gBAAE4J,cAAc,IAAI;YAAC;QACrI;QAEA,MAAMiN,mBAAkB3U,SAAS,EAAE;YACjC,OAAO,MAAMhC,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACe,QAAQ,CAACK,IAAI,CAACH;QACpE;QAEA,MAAM4U,2BAA0B5U,SAAS,EAAEnC,OAAO,EAAE;YAClD,OAAO,MAAMG,KAAKyI,GAAG,CAA6BzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACS,OAAO,CAAClC,WAAWnC;QACpG;QAEA,MAAMgX,iCAAgC7U,SAAS,EAAEnC,OAAO,EAAE;YACxD,OAAO,MAAMG,KAAKyI,GAAG,CAA6BzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACU,MAAM,CAACnC,WAAWnC;QACnG;QAEA,MAAMiX,eAAcnT,OAAO,EAAE9D,OAAO,EAAE;YACpC,OAAO,MAAMG,KAAKyI,GAAG,CAAqBzI,KAAKe,MAAM,CAACsD,MAAM,CAAC8B,KAAK,CAACxC,SAAS9D;QAC9E;QAEA,MAAMkX,0BAAyB/U,SAAS,EAAEnC,OAAO,EAAE;YACjD,OAAO,MAAMG,KAAKyI,GAAG,CAA6BzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACM,MAAM,CAAC/B,WAAWnC;QACnG;QAEA,MAAMmX,UAASrT,OAAO,EAAE;YACtB,OAAO,MAAM3D,KAAKyI,GAAG,CAAgBzI,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACjE,GAAG,CAACiB;QACpE;QAEA,MAAMsT,mBAAkBtT,OAAO,EAAEsB,OAAO,EAAEpF,OAAO,EAAE;YACjD,OAAO,MAAMG,KAAKyI,GAAG,CAAwBzI,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACE,KAAK,CAACrB,SAASsB,SAASpF,SAASkF;QAC1G;QAEA,MAAMmS,oBAAmBvT,OAAO,EAAE9D,OAAO,EAAE;YACzC,OAAO,MAAMG,KAAKyI,GAAG,CAA0BzI,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACA,MAAM,CAACnB,SAAS9D,SAASkF;QACpG;QAEA,MAAMoS,wBAAuBxT,OAAO,EAAEsB,OAAO,EAAEpF,OAAO,EAAE;YACtD,OAAO,MAAMG,KAAKyI,GAAG,CAAuDzI,KAAKe,MAAM,CAACsD,MAAM,CAACS,MAAM,CAACI,KAAK,CAACvB,SAASsB,SAASpF;QAChI;QAEA,MAAMuX,kBAAiB;YACrB,OAAO,MAAMpX,KAAKyV,aAAa;QACjC;QAEA,MAAM4B,kBAAiBrV,SAAS,EAAE;YAChC,OAAO,MAAMhC,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACe,QAAQ,CAAC0B,KAAK,CAACxB;QACzE;QAEA,MAAMsV,YAAWrQ,SAAoB,EAAE;YACrC,OAAO,MAAMjH,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACiG,OAAO,CAACC;QAC5D;QAEA,MAAMsQ,iBAAgB5T,OAAO,EAAEsD,SAAS,EAAE;YACxC,OAAO,MAAMjH,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACsD,MAAM,CAAC2C,OAAO,CAACrD,SAASsD;QAC5E;QAEA,MAAMuQ,kBAAiB7T,OAAO,EAAE;YAC9B,OAAO,MAAM3D,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACsD,MAAM,CAAC0C,QAAQ,CAACpD;QACtE;QAEA,MAAM8T,iBAAgBzV,SAAS,EAAES,MAAM,EAAE;YACvC,OAAO,MAAMzC,KAAKyI,GAAG,CAAsBzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACjB,IAAI,CAACR,WAAWS;QAC1F;QAEA,MAAMiV,kBAAiB1V,SAAS,EAAE;YAChC,OAAO,MAAMhC,KAAKyI,GAAG,CAAwBzI,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACG,OAAO,CAAC5B;QACpF;QAEA,MAAM2V,cAAa3V,SAAS,EAAEZ,SAAS,EAAEiN,QAAQ,EAAExO,OAAO,EAAE;YAC1D,OAAO,MAAMG,KAAKyI,GAAG,CAAgBzI,KAAKe,MAAM,CAACe,QAAQ,CAACM,SAAS,CAACjB,OAAO,CAACa,WAAWZ,WAAWiN,UAAUxO;QAC9G;QAEA,MAAM+X,SAAQ3W,EAAE,EAAE;YAChB,OAAO,MAAMjB,KAAKyI,GAAG,CAAczI,KAAKe,MAAM,CAACyB,IAAI,CAACvB;QACtD;QAEA,MAAM4W,cAAalU,OAAO,EAAE;YAC1B,OAAO,MAAM3D,KAAKyI,GAAG,CAAmBzI,KAAKe,MAAM,CAACsD,MAAM,CAACgD,MAAM,CAAC1D;QACpE;QAEA,MAAMmU,iBAAgBnU,OAAO,EAAE;YAC7B,OAAO,MAAM3D,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACsD,MAAM,CAACiD,OAAO,CAAC3D;QACzE;QAEA,MAAMoU,YAAW7W,SAAS,EAAE;YAC1B,OAAO,MAAMlB,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACC,QAAQ,CAACC,EAAE,CAACC;QAChE;QAEA,MAAM8W,mBAAkB9W,SAAS,EAAEpB,KAAK,EAAEsB,SAAS,EAAEvB,OAAO,EAAE;YAC5D,OAAO,MAAMG,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACC,QAAQ,CAACG,OAAO,CAACD,WAAWpB,OAAOsB,WAAWvB;QAClG;QAEA,MAAMoY,qBAAoB/W,SAAS,EAAEpB,KAAK,EAAE;YAC1C,OAAO,MAAME,KAAKyI,GAAG,CAAiBzI,KAAKe,MAAM,CAACC,QAAQ,CAACQ,OAAO,CAACN,WAAWpB;QAChF;QAEA,MAAMoY,kBAAiBvU,OAAO,EAAE;YAC9B,OAAO,MAAM3D,KAAKyI,GAAG,CAAuBzI,KAAKe,MAAM,CAACsD,MAAM,CAACkD,OAAO,CAAC5D;QACzE;QAEA,MAAMwU,WAAUxU,OAAO,EAAE;YACvB,OAAO,MAAM3D,KAAKyI,GAAG,CAAqBzI,KAAKe,MAAM,CAACsD,MAAM,CAACoD,UAAU,CAAC9D;QAC1E;QAEA,MAAMyU,mBAAkBzU,OAAO,EAAE;YAC/B,OAAO,MAAM3D,KAAKyI,GAAG,CAA6BzI,KAAKe,MAAM,CAACsD,MAAM,CAACmD,MAAM,CAAC7D;QAC9E;QAEA,MAAM0U,YAAWrW,SAAS,EAAE;YAC1B,MAAMhC,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACI,EAAE,CAAC7B;QACjD;QAEA,MAAMsW,YAAW3U,OAAO,EAAE;YACxB,MAAM3D,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACwB,KAAK,CAAClC;QAC7C;QAEA,MAAM4U,aAAYvW,SAAS,EAAE;YAC3B,MAAMhC,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACI,EAAE,CAAC7B;QACpD;QAEA,MAAMwW,gBAAexW,SAAS,EAAEZ,SAAS,EAAE;YACzC,OAAO,MAAMpB,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAACwB,SAAS,CAACtB,WAAWZ;QACnF;QAEA,MAAMqX,YAAW9U,OAAO,EAAElB,MAAM,EAAEoE,MAAM,EAAE8C,MAAM,EAAE;YAChD,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACsC,KAAK,CAACX,MAAM,CAACrC,SAASlB,QAAQoE,SAAS;gBAAE8C;YAAO;QACvF;QAEA,MAAM+O,oBAAmB1W,SAAS,EAAES,MAAM,EAAE;YAC1C,MAAMzC,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACjB,IAAI,CAACR,WAAWS;QACjE;QAEA,MAAMkW,qBAAoB7Y,KAAK,EAAED,OAAO,EAAE;YACxC,OAAO,MAAMG,KAAKiO,IAAI,CAACjO,KAAKe,MAAM,CAACC,QAAQ,CAACQ,OAAO,CAACxB,KAAKC,aAAa,EAAEH,QAAQ;gBAC9E8J,MAAM/J;gBACNgK,OAAOhK,QAAQgK,KAAK;gBACpBH,cAAc,IAAI;YACpB;QACF;QAEA,MAAMkP,yBAAwBzQ,aAAa,EAAErI,KAAK,EAAED,OAAO,EAAE;YAC3D,OAAO,MAAMG,KAAKiO,IAAI,CAACjO,KAAKe,MAAM,CAAC2G,YAAY,CAACO,SAAS,CAACC,QAAQ,CAACC,eAAerI,QAAQ;gBACxF8J,MAAM/J;gBACNgK,OAAOhK,QAAQkO,IAAI,EAAElE;gBACrB0D,iBAAiB,KAAK;gBACtB7D,cAAc,IAAI;YACpB;QACF;QAEA,MAAMmP,aAAY7W,SAAS,EAAE4H,IAAI,EAAE;YACjC,OAAO,MAAM5J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAACmB,QAAQ,CAACjB,YAAY;gBAAE4H;gBAAMC,OAAOD,KAAKC,KAAK;YAAC;QAC7G;QAEA,MAAMiP,wBAAuB9W,SAAS,EAAEZ,SAAS,EAAEwI,IAAI,EAAED,MAAM,EAAE;YAC/D,OAAO,MAAM3J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACtC,OAAO,CAACa,WAAWZ,YAAY;gBAAEwI;gBAAMD;YAAO;QACpH;QAEA,MAAMoP,2BAA0B/W,SAAS,EAAE4H,IAAI,EAAED,MAAM,EAAE;YACvD,OAAO,MAAM3J,KAAKiO,IAAI,CAAiBjO,KAAKe,MAAM,CAACe,QAAQ,CAAC2B,OAAO,CAACf,GAAG,CAACV,YAAY;gBAAE4H;gBAAMD;YAAO;QACrG;QAEA,MAAMqP,mBAAkBrV,OAAO,EAAE;YAC/B,OAAO,MAAM3D,KAAKmO,GAAG,CAAkBnO,KAAKe,MAAM,CAACsD,MAAM,CAAC8C,SAAS,CAACzE,GAAG,CAACiB;QAC1E;QAEA,MAAMsV,WAAUtV,OAAO,EAAElB,MAAM,EAAEmH,IAAI,EAAED,MAAM,EAAE;YAC7C,MAAM3J,KAAKmO,GAAG,CAAOnO,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACkC,GAAG,CAACnC,SAASlB,SAAS;gBAAEmH;gBAAMD;YAAO;QACvF;QAEA,MAAMuP,eAAcvV,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACzC,OAAO,MAAM3J,KAAKkO,KAAK,CAAgBlO,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACvB,GAAG,CAACsB,UAAU;gBAAEiG;gBAAMD;YAAO;QACjG;QAEA,MAAMwP,YAAWxV,OAAO,EAAElB,MAAM,EAAEmH,IAAI,EAAED,MAAM,EAAE;YAC9C,OAAO,MAAM3J,KAAKkO,KAAK,CAAwBlO,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACoC,MAAM,CAACrC,SAASlB,SAAS;gBAAEmH;gBAAMD;YAAO;QACpH;QAEA,MAAMyP,WAAUzV,OAAO,EAAElB,MAAM,EAAE;YAC/B,OAAO,MAAMzC,KAAKyI,GAAG,CAAwBzI,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACoC,MAAM,CAACrC,SAASlB;QAC1F;QAEA,MAAM4W,YAAW1V,OAAO,EAAE9D,OAAO,EAAE;YACjC,OAAO,MAAMG,KAAKyI,GAAG,CAA0BzI,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACA,OAAO,CAACD,SAAS9D;QAC7F;QAEA,MAAMyZ,YAAW3V,OAAO,EAAElB,MAAM,EAAEkH,MAAM,EAAE;YACxC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACoC,MAAM,CAACrC,SAASlB,SAAS;gBACpEkH;YACF;QACF;QAEA,MAAM4P,YAAWvX,SAAS,EAAEZ,SAAS,EAAEuI,MAAM,EAAE;YAC7C,MAAM3J,KAAKmO,GAAG,CAACnO,KAAKe,MAAM,CAACe,QAAQ,CAACI,GAAG,CAACF,WAAWZ,YAAY;gBAAEuI;YAAO;QAC1E;QAEA,MAAM6P,cAAa7V,OAAO,EAAEiG,IAAI,EAAED,MAAM,EAAE;YACxC,OAAO,MAAM3J,KAAKiO,IAAI,CAA4BjO,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACuC,KAAK,CAACxC,UAAU;gBAAEiG;gBAAMD;YAAO;QAC9G;QAEA,MAAM8P,eAAc9V,OAAO,EAAEuC,KAAK,EAAErG,OAAO,EAAE;YAC3C,OAAO,MAAMG,KAAKyI,GAAG,CAA0BzI,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACqC,MAAM,CAACtC,SAASuC,OAAOrG;QACnG;QAEA,MAAM6Z,aAAY/V,OAAO,EAAElB,MAAM,EAAEkH,MAAM,EAAE;YACzC,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACsD,MAAM,CAACT,OAAO,CAACkC,GAAG,CAACnC,SAASlB,SAAS;gBAAEkH;YAAO;QAC9E;QAEA,MAAMgQ,cAAa3X,SAAS,EAAEZ,SAAS,EAAEuI,MAAM,EAAE;YAC/C,MAAM3J,KAAK2K,MAAM,CAAC3K,KAAKe,MAAM,CAACe,QAAQ,CAACI,GAAG,CAACF,WAAWZ,YAAY;gBAAEuI;YAAO;QAC7E;QAEA,MAAMiQ,wBAAuB5X,SAAS,EAAE;YACtC,MAAMhC,KAAKiO,IAAI,CAACjO,KAAKe,MAAM,CAACe,QAAQ,CAACsC,MAAM,CAACpC;QAC9C;QAEA,MAAM6X,iCAAgCjQ,IAAI,EAAE;YAC1C,OAAO,MAAM5J,KAAKmO,GAAG,CAA8BnO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACA,QAAQ,CAAC3H,KAAKC,aAAa,GAAG;gBAAE2J;YAAK;QAC5H;QAEA,MAAMkQ,gCAA+BnW,OAAO,EAAEiG,IAAI,EAAE;YAClD,OAAO,MAAM5J,KAAKmO,GAAG,CAA8BnO,KAAKe,MAAM,CAAC2G,YAAY,CAACC,QAAQ,CAACtD,MAAM,CAAC3B,GAAG,CAAC1C,KAAKC,aAAa,EAAE0D,UAAU;gBAAEiG;YAAK;QACvI;IACF;IAEA,OAAO5J;AACT,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@discordeno/rest",
3
- "version": "19.0.0-next.7b5d99e",
3
+ "version": "19.0.0-next.7c51f73",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -24,8 +24,8 @@
24
24
  "test:test-type": "tsc --project tsconfig.test.json"
25
25
  },
26
26
  "dependencies": {
27
- "@discordeno/types": "19.0.0-next.7b5d99e",
28
- "@discordeno/utils": "19.0.0-next.7b5d99e",
27
+ "@discordeno/types": "19.0.0-next.7c51f73",
28
+ "@discordeno/utils": "19.0.0-next.7c51f73",
29
29
  "dotenv": "^16.0.3",
30
30
  "node-fetch": "^3.3.1"
31
31
  },