snowtransfer 0.17.4 → 0.17.6
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/index.d.ts +56 -7
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/StateMachine.ts","../src/Constants.ts","../src/Endpoints.ts","../src/RequestHandler.ts","../src/methods/AuditLog.ts","../src/methods/AutoModeration.ts","../src/methods/Bot.ts","../src/methods/Channel.ts","../src/methods/Assets.ts","../src/methods/Entitlements.ts","../src/methods/Guild.ts","../src/methods/GuildScheduledEvent.ts","../src/methods/GuildTemplate.ts","../src/methods/Interaction.ts","../src/methods/Invite.ts","../src/methods/Sku.ts","../src/methods/StageInstance.ts","../src/methods/User.ts","../src/methods/Voice.ts","../src/methods/Webhook.ts","../src/tokenless.ts","../src/SnowTransfer.ts","../src/StateMachineGraph.ts","../src/index.ts"],"names":["EventEmitter","Constants","Blob","File","Readable","ReadableStream","Endpoints","SM","DiscordAPIError","IntervalCounter","LeakyCounter","Bucket","Ratelimiter","RequestHandler","MessageReferenceType","MessageFlags","InteractionResponseType","exports"],"mappings":"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","file":"index.js","sourcesContent":["import EventEmitter = require(\"events\");\r\n\r\nimport type { SMHistory, SMState, SMTransition } from \"./Types\";\r\n\r\ninterface StateMachineEvents {\r\n\tenter: [string];\r\n}\r\n\r\n\r\n\r\n\r\n\r\nclass StateMachine extends EventEmitter<StateMachineEvents> {\r\n\tpublic readonly states = new Map<string, SMState>();\r\n\tprivate editable = true;\r\n\tprivate readonly deferredTransitionCreators: Array<() => unknown> = [];\r\n\tprivate readonly history: Array<SMHistory> = [];\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public currentStateName: string) {\r\n\t\tsuper();\r\n\t\tthis.deferredTransitionCreators.push(() => {\r\n\t\t\tif (!this.states.has(currentStateName)) {\r\n\t\t\t\tthis.defineState(currentStateName);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic guardEditable() {\r\n\t\tif (!this.editable) throw new Error(\"tried to edit state machine after machine has been frozen\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic guardNotEditable() {\r\n\t\tif (this.editable) throw new Error(\"tried to do transition before machine has been frozen\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineState(name: string, cbs: { onEnter: SMState[\"onEnter\"], onLeave: SMState[\"onLeave\"], transitions: Map<string, SMTransition> } = { onEnter: [], onLeave: [], transitions: new Map() }): this {\r\n\t\tthis.guardEditable();\r\n\t\tif (this.states.has(name)) throw new Error(`attempt to redefine state ${name}, please edit it instead`);\r\n\t\tthis.states.set(name, {\r\n\t\t\tonEnter: cbs.onEnter,\r\n\t\t\tonLeave: cbs.onLeave,\r\n\t\t\ttransitions: cbs.transitions\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineTransition(from: string, event: string, to: string, cb?: (...args: any[]) => unknown): this {\r\n\t\tthis.guardEditable();\r\n\t\tconst state = this.states.get(from)!;\r\n\t\tif (state.transitions.has(event)) throw new Error(`attempt to redefine transition ${from} --${event}--> *, please only create transitions once`);\r\n\t\tconst onTransition: SMTransition[\"onTransition\"] = [];\r\n\t\tif (cb) onTransition.push(cb);\r\n\t\tstate.transitions.set(event, { destination: to, onTransition });\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineUniversalTransition(event: string, to: string): this {\r\n\t\tthis.guardEditable();\r\n\t\tthis.deferredTransitionCreators.push(() => {\r\n\t\t\tfor (const [stateName, state] of this.states.entries()) {\r\n\t\t\t\tif (!state.transitions.has(event)) {\r\n\t\t\t\t\tthis.defineTransition(stateName, event, to);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic freeze() {\r\n\t\tthis.guardEditable();\r\n\r\n\r\n\t\tfor (const cb of this.deferredTransitionCreators) {\r\n\t\t\tcb();\r\n\t\t}\r\n\r\n\r\n\t\tconst problems: Array<string> = [];\r\n\t\tfor (const [stateName, state] of this.states.entries()) {\r\n\t\t\tfor (const [transitionName, transition] of state.transitions.entries()) {\r\n\t\t\t\tif (!this.states.has(transition.destination)) {\r\n\t\t\t\t\tproblems.push(`transition ${stateName} --${transitionName}--> ${transition.destination} has an invalid destination`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (problems.length) {\r\n\t\t\tthrow new Error(`Consistency problems in state machine: ${problems.join(\";\")}`);\r\n\t\t}\r\n\r\n\t\tthis.editable = false;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic doTransition(event: string, ...args: any[]): void {\r\n\t\tthis.guardNotEditable();\r\n\t\tconst from = this.currentStateName;\r\n\t\tconst currentState = this.states.get(this.currentStateName)!;\r\n\t\tconst transition = currentState.transitions.get(event);\r\n\t\tif (!transition) throw new Error(`undefined transition: ${this.currentStateName} -> ${event} -> ?`);\r\n\r\n\t\tthis.history.push({ from, event, to: transition.destination, time: Date.now() });\r\n\t\tif (this.history.length > 20) this.history.shift();\r\n\r\n\r\n\t\tfor (const cb of this.states.get(this.currentStateName)!.onLeave) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(event);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onLeave callback for state ${from} (during transition ${from} --${event}--> ${transition.destination})`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tthis.currentStateName = transition.destination;\r\n\t\tfor (const cb of transition.onTransition ?? []) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(...args);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onTransition callback during ${from} --${event}--> ${transition.destination}`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tthis.emit(\"enter\", this.currentStateName);\r\n\t\tfor (const cb of this.states.get(this.currentStateName)!.onEnter) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(event);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onEnter callback for state ${from} (during transition ${this.currentStateName} --${event}--> ${transition.destination})`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic doTransitionLater(event: string, delayMs: number, ...args: Array<any>): void {\r\n\t\tthis.guardNotEditable();\r\n\t\tconst timer = setTimeout(() => {\r\n\t\t\tthis.doTransition(event, ...args);\r\n\t\t}, delayMs);\r\n\t\tthis.once(\"enter\", () => {\r\n\t\t\tclearTimeout(timer);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic debug(): void {\r\n\t\tconsole.table(this.history.map(h => ({\r\n\t\t\t\"At\": new Date(h.time),\r\n\t\t\t\"From -->\": h.from,\r\n\t\t\t\"-- Event -->\": h.event,\r\n\t\t\t\"--> To\": h.to\r\n\t\t})).concat({\r\n\t\t\t\"At\": new Date(),\r\n\t\t\t\"From -->\": this.currentStateName,\r\n\t\t\t\"-- Event -->\": \"(debug)\",\r\n\t\t\t\"--> To\": \"\"\r\n\t\t}));\r\n\t}\r\n}\r\n\r\n\r\nexport = StateMachine;\r\n","import { Blob, File } from \"buffer\";\r\nimport { Readable } from \"stream\";\r\nimport { ReadableStream } from \"stream/web\";\r\n\r\nconst Constants = {\r\n\tREST_API_VERSION: 10 as const,\r\n\tGET_CHANNEL_MESSAGES_MIN_RESULTS: 1 as const,\r\n\tGET_CHANNEL_MESSAGES_MAX_RESULTS: 100 as const,\r\n\tGET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS: 1 as const,\r\n\tGET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS: 100 as const,\r\n\tSEARCH_MEMBERS_MIN_RESULTS: 1 as const,\r\n\tSEARCH_MEMBERS_MAX_RESULTS: 1000 as const,\r\n\tBULK_DELETE_MESSAGES_MIN: 2 as const,\r\n\tBULK_DELETE_MESSAGES_MAX: 100 as const,\r\n\tOK_STATUS_CODES: new Set([200, 201, 204, 304]),\r\n\tDO_NOT_RETRY_STATUS_CODES: new Set([401, 403, 404, 405, 411, 413]),\r\n\tDEFAULT_RETRY_LIMIT: 3,\r\n\tGLOBAL_REQUESTS_PER_SECOND: 50,\r\n\tasync standardMultipartHandler(data: { files: Array<{ name: string; file: Buffer | Blob | File | Readable | ReadableStream }>; data?: any; }): Promise<FormData> {\r\n\t\tconst form = new FormData();\r\n\r\n\t\tif (data.files && Array.isArray(data.files) && data.files.every(f => !!f.name && !!f.file)) {\r\n\t\t\tlet index = 0;\r\n\t\t\tfor (const file of data.files) {\r\n\t\t\t\tawait Constants.standardAddToFormHandler(form, `files[${index}]`, file.file, file.name);\r\n\r\n\r\n\t\t\t\tdelete file.file;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tif (data.data) delete data.files;\r\n\t\tform.append(\"payload_json\", JSON.stringify(data));\r\n\t\treturn form;\r\n\t},\r\n\tasync standardAddToFormHandler(form: FormData, name: string, value: string | Buffer | Blob | File | Readable | ReadableStream, filename?: string): Promise<void> {\r\n\r\n\t\tif (value instanceof Buffer || typeof value === \"string\") form.append(name, new Blob([value]), filename);\r\n\t\telse if (value instanceof Blob || value instanceof File) form.append(name, value, filename);\r\n\t\telse if (value instanceof Readable || value instanceof ReadableStream) {\r\n\t\t\tconst blob = await new Response(value instanceof ReadableStream ? value : Readable.toWeb(value)).blob();\r\n\t\t\tform.set(name, blob, filename);\r\n\t\t} else throw new Error(`Don't know how to add ${value?.constructor?.name ?? typeof value} to form`);\r\n\t},\r\n\treasonHeader(reason?: string): { \"X-Audit-Log-Reason\"?: string } { return reason ? { \"X-Audit-Log-Reason\": reason } : {}; }\r\n};\r\n\r\nexport = Constants;\r\n","\"use strict\";\r\n\r\nimport Constants = require(\"./Constants\");\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst Endpoints = {\r\n\tBASE_URL: \"/api/v\" + Constants.REST_API_VERSION as `/api/v${typeof Constants.REST_API_VERSION}`,\r\n\tBASE_HOST: \"https:\r\n\tCDN_URL: \"https:\r\n\r\n\tAPPLICATION_COMMAND: (appId: string, cmdId: string) => `${Endpoints.APPLICATION_COMMANDS(appId)}/${cmdId}` as `${ReturnType<typeof Endpoints.APPLICATION_COMMANDS>}/{cmd_id}`,\r\n\tAPPLICATION_COMMANDS: (appId: string) => `/applications/${appId}/commands` as \"/applications/{app_id}/commands\",\r\n\tAPPLICATION_EMOJI: (appId: string, emojiId: string) => `${Endpoints.APPLICATION_EMOJIS(appId)}/${emojiId}` as `${ReturnType<typeof Endpoints.APPLICATION_EMOJIS>}/{emoji_id}`,\r\n\tAPPLICATION_EMOJIS: (appId: string) => `/applications/${appId}/emojis` as \"/applications/{app_id}/emojis\",\r\n\tAPPLICATION_ENTITLEMENT: (appId: string, entitlementId: string) => `${Endpoints.APPLICATION_ENTITLEMENTS(appId)}/${entitlementId}` as `${ReturnType<typeof Endpoints.APPLICATION_ENTITLEMENTS>}/{entitlement_id}`,\r\n\tAPPLICATION_ENTITLEMENT_CONSUME: (appId: string, entitlementId: string) => `${Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId)}/consume` as `${ReturnType<typeof Endpoints.APPLICATION_ENTITLEMENT>}/consume`,\r\n\tAPPLICATION_ENTITLEMENTS: (appId: string) => `/applications/${appId}/entitlements` as \"/applications/{app_id}/entitlements\",\r\n\tAPPLICATION_GUILD_COMMANDS_PERMISSIONS: (appId: string, guildId: string) => `${Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId)}/permissions` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMANDS>}/permissions`,\r\n\tAPPLICATION_GUILD_COMMAND_PERMISSIONS: (appId: string, guildId: string, cmdId: string) => `${Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId)}/permissions` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMAND>}/permissions`,\r\n\tAPPLICATION_GUILD_COMMAND: (appId: string, guildId: string, cmdId: string) => `${Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId)}/${cmdId}` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMANDS>}/{cmd_id}`,\r\n\tAPPLICATION_GUILD_COMMANDS: (appId: string, guildId: string) => `/applications/${appId}/guilds/${guildId}/commands` as \"/applications/{app_id}/guilds/{guild_id}/commands\",\r\n\tAPPLICATION_SKUS: (appId: string) => `/applications/${appId}/skus` as \"/applications/{app_id}/skus\",\r\n\tATTACHMENTS_REFRESH_URLS: `/attachments/refresh-urls` as const,\r\n\tCHANNEL: (chanId: string) => `${Endpoints.CHANNELS}/${chanId}` as `${typeof Endpoints.CHANNELS}/{channel_id}`,\r\n\tCHANNEL_ATTACHMENTS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/attachments` as `${ReturnType<typeof Endpoints.CHANNEL>}/attachments`,\r\n\tCHANNEL_BULK_DELETE: (chanId: string) => `${Endpoints.CHANNEL_MESSAGES(chanId)}/bulk-delete` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGES>}/bulk-delete`,\r\n\tCHANNEL_FOLLOWERS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/followers` as `${ReturnType<typeof Endpoints.CHANNEL>}/followers`,\r\n\tCHANNEL_INVITES: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/invites` as `${ReturnType<typeof Endpoints.CHANNEL>}/invites`,\r\n\tCHANNEL_MESSAGE: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGES(chanId)}/${msgId}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGES>}/{message_id}`,\r\n\tCHANNEL_MESSAGE_CROSSPOST: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/crosspost` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/crosspost`,\r\n\tCHANNEL_MESSAGE_REACTION: (chanId: string, msgId: string, reaction: string) => `${Endpoints.CHANNEL_MESSAGE_REACTIONS(chanId, msgId)}/${reaction}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE_REACTIONS>}/{reaction}`,\r\n\tCHANNEL_MESSAGE_REACTION_USER: (chanId: string, msgId: string, reaction: string, userId: string) => `${Endpoints.CHANNEL_MESSAGE_REACTION(chanId, msgId, reaction)}/${userId}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE_REACTION>}/{user_id}`,\r\n\tCHANNEL_MESSAGE_REACTIONS: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/reactions` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/reactions`,\r\n\tCHANNEL_MESSAGE_THREADS: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/threads` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/threads`,\r\n\tCHANNEL_MESSAGES: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/messages` as `${ReturnType<typeof Endpoints.CHANNEL>}/messages`,\r\n\tCHANNEL_PERMISSION: (chanId: string, permId: string) => `${Endpoints.CHANNEL_PERMISSIONS(chanId)}/${permId}` as `${ReturnType<typeof Endpoints.CHANNEL_PERMISSIONS>}/{perm_id}`,\r\n\tCHANNEL_PERMISSIONS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/permissions` as `${ReturnType<typeof Endpoints.CHANNEL>}/permissions`,\r\n\tCHANNEL_PIN: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_PINS(chanId)}/${msgId}` as `${ReturnType<typeof Endpoints.CHANNEL_PINS>}/{message_id}`,\r\n\tCHANNEL_PINS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/messages/pins` as `${ReturnType<typeof Endpoints.CHANNEL>}/messages/pins`,\r\n\tCHANNEL_RECIPIENT: (chanId: string, userId: string) => `${Endpoints.CHANNEL(chanId)}/recipients/${userId}` as `${ReturnType<typeof Endpoints.CHANNEL>}/recipients/{user_id}`,\r\n\tCHANNEL_THREADS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/threads` as `${ReturnType<typeof Endpoints.CHANNEL>}/threads`,\r\n\tCHANNEL_THREAD_MEMBER: (chanId: string, memberId: string) => `${Endpoints.CHANNEL_THREAD_MEMBERS(chanId)}/${memberId}` as `${ReturnType<typeof Endpoints.CHANNEL_THREAD_MEMBERS>}/{member_id}`,\r\n\tCHANNEL_THREAD_MEMBERS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/thread-members` as `${ReturnType<typeof Endpoints.CHANNEL>}/thread-members`,\r\n\tCHANNEL_THREADS_ARCHIVED_PRIVATE: (chanId: string) => `${Endpoints.CHANNEL_THREADS(chanId)}/archived/private` as `${ReturnType<typeof Endpoints.CHANNEL_THREADS>}/archived/private`,\r\n\tCHANNEL_THREADS_ARCHIVED_PRIVATE_USER: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/users/@me/threads/archived/private` as `${ReturnType<typeof Endpoints.CHANNEL>}/users/@me/threads/archived/private`,\r\n\tCHANNEL_THREADS_ARCHIVED_PUBLIC: (chanId: string) => `${Endpoints.CHANNEL_THREADS(chanId)}/archived/public` as `${ReturnType<typeof Endpoints.CHANNEL_THREADS>}/archived/public`,\r\n\tCHANNEL_TYPING: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/typing` as `${ReturnType<typeof Endpoints.CHANNEL>}/typing`,\r\n\tCHANNEL_VOICE_STATUS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/voice-status` as `${ReturnType<typeof Endpoints.CHANNEL>}/voice-status`,\r\n\tCHANNEL_WEBHOOKS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/webhooks` as `${ReturnType<typeof Endpoints.CHANNEL>}/webhooks`,\r\n\tCHANNELS: \"/channels\" as const,\r\n\tGATEWAY: \"/gateway\" as const,\r\n\tGATEWAY_BOT: \"/gateway/bot\" as const,\r\n\tGUILD: (guildId: string) => `${Endpoints.GUILDS}/${guildId}` as `${typeof Endpoints.GUILDS}/{guild_id}`,\r\n\tGUILD_AUDIT_LOGS: (guildId: string) => `${Endpoints.GUILD(guildId)}/audit-logs` as `${ReturnType<typeof Endpoints.GUILD>}/audit-logs`,\r\n\tGUILD_AUTO_MOD_RULE: (guildId: string, ruleId: string) => `${Endpoints.GUILD_AUTO_MOD_RULES(guildId)}/${ruleId}` as `${ReturnType<typeof Endpoints.GUILD_AUTO_MOD_RULES>}/{rule_id}`,\r\n\tGUILD_AUTO_MOD_RULES: (guildId: string) => `${Endpoints.GUILD(guildId)}/auto-moderation/rules` as `${ReturnType<typeof Endpoints.GUILD>}/auto-moderation/rules`,\r\n\tGUILD_BAN: (guildId: string, memberId: string) => `${Endpoints.GUILD_BANS(guildId)}/${memberId}` as `${ReturnType<typeof Endpoints.GUILD_BANS>}/{member_id}`,\r\n\tGUILD_BANS: (guildId: string) => `${Endpoints.GUILD(guildId)}/bans` as `${ReturnType<typeof Endpoints.GUILD>}/bans`,\r\n\tGUILD_CHANNELS: (guildId: string) => `${Endpoints.GUILD(guildId)}/channels` as `${ReturnType<typeof Endpoints.GUILD>}/channels`,\r\n\tGUILD_EMOJI: (guildId: string, emojiId: string) => `${Endpoints.GUILD_EMOJIS(guildId)}/${emojiId}` as `${ReturnType<typeof Endpoints.GUILD_EMOJIS>}/{emoji_id}`,\r\n\tGUILD_EMOJIS: (guildId: string) => `${Endpoints.GUILD(guildId)}/emojis` as `${ReturnType<typeof Endpoints.GUILD>}/emojis`,\r\n\tGUILD_INVITES: (guildId: string) => `${Endpoints.GUILD(guildId)}/invites` as `${ReturnType<typeof Endpoints.GUILD>}/invites`,\r\n\tGUILD_INTEGRATION: (guildId: string, integrationId: string) => `${Endpoints.GUILD_INTEGRATIONS(guildId)}/${integrationId}` as `${ReturnType<typeof Endpoints.GUILD_INTEGRATIONS>}/{integration_id}`,\r\n\tGUILD_INTEGRATIONS: (guildId: string) => `${Endpoints.GUILD(guildId)}/integrations` as `${ReturnType<typeof Endpoints.GUILD>}/integrations`,\r\n\tGUILD_MEMBER: (guildId: string, memberId: string) => `${Endpoints.GUILD_MEMBERS(guildId)}/${memberId}` as `${ReturnType<typeof Endpoints.GUILD_MEMBERS>}/{member_id}`,\r\n\tGUILD_MEMBER_ROLE: (guildId: string, memberId: string, roleId: string) => `${Endpoints.GUILD_MEMBER(guildId, memberId)}/roles/${roleId}` as `${ReturnType<typeof Endpoints.GUILD_MEMBER>}/roles/{role_id}`,\r\n\tGUILD_MEMBERS: (guildId: string) => `${Endpoints.GUILD(guildId)}/members` as `${ReturnType<typeof Endpoints.GUILD>}/members`,\r\n\tGUILD_MEMBERS_SEARCH: (guildId: string) => `${Endpoints.GUILD_MEMBERS(guildId)}/search` as `${ReturnType<typeof Endpoints.GUILD_MEMBERS>}/search`,\r\n\tGUILD_PREVIEW: (guildId: string) => `${Endpoints.GUILD(guildId)}/preview` as `${ReturnType<typeof Endpoints.GUILD>}/preview`,\r\n\tGUILD_PRUNE: (guildId: string) => `${Endpoints.GUILD(guildId)}/prune` as `${ReturnType<typeof Endpoints.GUILD>}/prune`,\r\n\tGUILD_ROLE: (guildId: string, roleId: string) => `${Endpoints.GUILD_ROLES(guildId)}/${roleId}` as `${ReturnType<typeof Endpoints.GUILD_ROLES>}/{role_id}`,\r\n\tGUILD_ROLES: (guildId: string) => `${Endpoints.GUILD(guildId)}/roles` as `${ReturnType<typeof Endpoints.GUILD>}/roles`,\r\n\tGUILD_SCHEDULED_EVENTS: (guildId: string) => `${Endpoints.GUILD(guildId)}/scheduled-events` as `${ReturnType<typeof Endpoints.GUILD>}/scheduled-events`,\r\n\tGUILD_SCHEDULED_EVENT: (guildId: string, eventId: string) => `${Endpoints.GUILD_SCHEDULED_EVENTS(guildId)}/${eventId}` as `${ReturnType<typeof Endpoints.GUILD_SCHEDULED_EVENTS>}/{event_id}`,\r\n\tGUILD_SCHEDULED_EVENT_USERS: (guildId: string, eventId: string) => `${Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId)}/users` as `${ReturnType<typeof Endpoints.GUILD_SCHEDULED_EVENT>}/users`,\r\n\tGUILD_STICKER: (guildId: string, stickerId: string) => `${Endpoints.GUILD_STICKERS(guildId)}/${stickerId}` as `${ReturnType<typeof Endpoints.GUILD_STICKERS>}/{sticker_id}`,\r\n\tGUILD_STICKERS: (guildId: string) => `${Endpoints.GUILD(guildId)}/stickers` as `${ReturnType<typeof Endpoints.GUILD>}/stickers`,\r\n\tGUILD_TEMPLATE: (guildId: string, code: string) => `${Endpoints.GUILD_TEMPLATES(guildId)}/${code}` as `${ReturnType<typeof Endpoints.GUILD_TEMPLATES>}/{code}`,\r\n\tGUILD_THREADS_ACTIVE: (guildId: string) => `${Endpoints.GUILD(guildId)}/threads/active` as `${ReturnType<typeof Endpoints.GUILD>}/threads/active`,\r\n\tGUILD_TEMPLATES: (guildId: string) => `${Endpoints.GUILD(guildId)}/templates` as `${ReturnType<typeof Endpoints.GUILD>}/templates`,\r\n\tGUILD_VANITY: (guildId: string) => `${Endpoints.GUILD(guildId)}/vanity-url` as `${ReturnType<typeof Endpoints.GUILD>}/vanity-url`,\r\n\tGUILD_VOICE_REGIONS: (guildId: string) => `${Endpoints.GUILD(guildId)}/regions` as `${ReturnType<typeof Endpoints.GUILD>}/regions`,\r\n\tGUILD_VOICE_STATE_USER: (guildId: string, memberId: string) => `${Endpoints.GUILD(guildId)}/voice-states/${memberId}` as `${ReturnType<typeof Endpoints.GUILD>}/voice-states/{member_id}`,\r\n\tGUILD_WEBHOOKS: (guildId: string) => `${Endpoints.GUILD(guildId)}/webhooks` as `${ReturnType<typeof Endpoints.GUILD>}/webhooks`,\r\n\tGUILD_WELCOME_SCREEN: (guildId: string) => `${Endpoints.GUILD(guildId)}/welcome-screen` as `${ReturnType<typeof Endpoints.GUILD>}/welcome-screen`,\r\n\tGUILD_WIDGET: (guildId: string) => `${Endpoints.GUILD(guildId)}/widget.json` as `${ReturnType<typeof Endpoints.GUILD>}/widget.json`,\r\n\tGUILD_WIDGET_SETTINGS: (guildId: string) => `${Endpoints.GUILD(guildId)}/widget` as `${ReturnType<typeof Endpoints.GUILD>}/widget`,\r\n\tGUILDS: \"/guilds\" as const,\r\n\tINTERACTION_CALLBACK: (interactionId: string, token: string) => `/interactions/${interactionId}/${token}/callback` as \"/interactions/{interaction_id}/{token}/callback\",\r\n\tINVITES: (inviteId: string) => `/invites/${inviteId}` as \"/invites/{invite_id}\",\r\n\tINVITE_TARGET_USERS: (inviteId: string) => `${Endpoints.INVITES(inviteId)}/target-users` as `${ReturnType<typeof Endpoints.INVITES>}/target-users`,\r\n\tINVITE_TARGET_USERS_JOB_STATUS: (inviteId: string) => `${Endpoints.INVITE_TARGET_USERS(inviteId)}/job-status` as `${ReturnType<typeof Endpoints.INVITE_TARGET_USERS>}/job-status`,\r\n\tOAUTH2_APPLICATION: (appId: string) => `/oauth2/applications/${appId}` as \"/oauth2/applications/{app_id}\",\r\n\tOAUTH2_TOKEN: \"/api/oauth2/token\" as const,\r\n\tPOLL_ANSWER: (chanId: string, msgId: string, answerId: string) => `${Endpoints.CHANNEL(chanId)}/polls/${msgId}/answers/${answerId}` as `${ReturnType<typeof Endpoints.CHANNEL>}/polls/{message_id}/answers/{answer_id}`,\r\n\tPOLL_EXPIRE: (chanId: string, msgId: string) => `${Endpoints.CHANNEL(chanId)}/polls/${msgId}/expire` as `${ReturnType<typeof Endpoints.CHANNEL>}/polls/{message_id}/expire`,\r\n\tSKU_SUBSCRIPTIONS: (skuId: string) => `/skus/${skuId}/subscriptions` as \"/skus/{sku_id}/subscriptions\",\r\n\tSKU_SUBSCRIPTION: (skuId: string, subscriptionId: string) => `${Endpoints.SKU_SUBSCRIPTIONS(skuId)}/${subscriptionId}` as `${ReturnType<typeof Endpoints.SKU_SUBSCRIPTIONS>}/{subscription_id}`,\r\n\tSTAGE_INSTANCE_CHANNEL: (chanId: string) => `${Endpoints.STAGE_INSTANCES}/${chanId}` as `${typeof Endpoints.STAGE_INSTANCES}/{channel_id}`,\r\n\tSTAGE_INSTANCES: \"/stage-instances\" as const,\r\n\tSTICKER: (stickerId: string) => `/stickers/${stickerId}` as \"/stickers/{sticker_id}\",\r\n\tTEMPLATE: (code: string) => `/guilds/templates/${code}` as \"/guilds/templates/{code}\",\r\n\tUSER: (userId: string) => `${Endpoints.USERS}/${userId}` as `${typeof Endpoints.USERS}/{user_id}`,\r\n\tUSER_APPLICATION_ROLE_CONNECTION: (userId: string, appId: string) => `${Endpoints.USER(userId)}/applications/${appId}/role-connection` as `${ReturnType<typeof Endpoints.USER>}/applications/{app_id}/role-connection`,\r\n\tUSER_CHANNELS: (userId: string) => `${Endpoints.USER(userId)}/channels` as `${ReturnType<typeof Endpoints.USER>}/channels`,\r\n\tUSER_CONNECTIONS: (userId: string) => `${Endpoints.USER(userId)}/connections` as `${ReturnType<typeof Endpoints.USER>}/connections`,\r\n\tUSER_GUILD: (userId: string, guildId: string) => `${Endpoints.USER_GUILDS(userId)}/${guildId}` as `${ReturnType<typeof Endpoints.USER_GUILDS>}/{guild_id}`,\r\n\tUSER_GUILDS: (userId: string) => `${Endpoints.USER(userId)}/guilds` as `${ReturnType<typeof Endpoints.USER>}/guilds`,\r\n\tUSER_GUILD_VOICE_STATE: (guildId: string, userId: string) => `${Endpoints.GUILD(guildId)}/voice-states/${userId}` as `${ReturnType<typeof Endpoints.GUILD>}/voice-states/{user_id}`,\r\n\tUSERS: \"/users\" as const,\r\n\tVOICE_REGIONS: \"/voice/regions\" as const,\r\n\tWEBHOOK: (hookId: string) => `/webhooks/${hookId}` as \"/webhooks/{hook_id}\",\r\n\tWEBHOOK_TOKEN: (hookId: string, token: string) => `${Endpoints.WEBHOOK(hookId)}/${token}` as `${ReturnType<typeof Endpoints.WEBHOOK>}/{token}`,\r\n\tWEBHOOK_TOKEN_GITHUB: (hookId: string, token: string) => `${Endpoints.WEBHOOK_TOKEN(hookId, token)}/github` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/github`,\r\n\tWEBHOOK_TOKEN_MESSAGE: (hookId: string, token: string, msgId: string) => `/webhooks/${hookId}/${token}/messages/${msgId}` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/messages/{message_id}`,\r\n\tWEBHOOK_TOKEN_SLACK: (hookId: string, token: string) => `${Endpoints.WEBHOOK_TOKEN(hookId, token)}/slack` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/slack`,\r\n};\r\n\r\nexport = Endpoints;\r\n","/* eslint-disable no-async-promise-executor */\r\n\r\nimport fs = require(\"fs\");\r\nimport path = require(\"path\");\r\nimport { EventEmitter } from \"events\";\r\nimport crypto = require(\"crypto\");\r\nimport util = require(\"util\");\r\n\r\nimport Endpoints = require(\"./Endpoints\");\r\nconst { version } = JSON.parse(fs.readFileSync(path.join(__dirname, \"../package.json\"), { encoding: \"utf8\" }));\r\nimport Constants = require(\"./Constants\");\r\nimport SM = require(\"./StateMachine\");\r\n\r\nimport type { HTTPMethod, RatelimitInfo, RequestEventData, HandlerEvents } from \"./Types\";\r\n\r\n\r\nconst routeRegex = /\\/([a-z-]+)\\/(?:\\d+)/g;\r\nconst reactionsRegex = /\\/reactions\\/[^/]+/g;\r\nconst reactionsUserRegex = /\\/reactions\\/:id\\/[^/]+/g;\r\nconst webhooksRegex = /^\\/webhooks\\/(\\d+)\\/[A-Za-z0-9-_]{64,}/;\r\nconst isMessageEndpointRegex = /\\/messages\\/:id$/;\r\nconst isGuildChannelsRegex = /\\/guilds\\/\\d+\\/channels$/;\r\nconst messagesRegex = /\\/messages\\/\\d+$/;\r\n\r\nconst disallowedBodyMethods = new Set([\"head\", \"get\", \"delete\"]);\r\n\r\n\r\n\r\n\r\n\r\nexport class DiscordAPIError extends Error {\r\n\tpublic method: string;\r\n\tpublic path: string;\r\n\tpublic code: number;\r\n\tpublic httpStatus: number;\r\n\tpublic request: RequestEventData;\r\n\tpublic response: Response;\r\n\r\n\tpublic constructor(error: { message?: string; code?: number; }, request: RequestEventData, response: Response) {\r\n\t\tsuper();\r\n\t\tthis.name = \"DiscordAPIError\";\r\n\t\tthis.message = error.message ?? util.inspect(error);\r\n\t\tthis.method = request.method;\r\n\t\tthis.path = request.endpoint;\r\n\t\tthis.code = error.code ?? 4000;\r\n\t\tthis.httpStatus = response.status;\r\n\r\n\t\tObject.defineProperties(this, {\r\n\t\t\trequest: { enumerable: false, value: request },\r\n\t\t\tresponse: { enumerable: false, value: response },\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nexport interface Counter {\r\n\tid: string;\r\n\r\n\r\n\r\n\r\n\thasReset(): boolean;\r\n\r\n\r\n\r\n\r\n\tcanTake(): boolean;\r\n\r\n\r\n\r\n\r\n\ttake(): boolean;\r\n\r\n\ttimeUntilReset(): number;\r\n\r\n\tresponseReceived(): void;\r\n\r\n\tapplyCount(limit: number | null, remaining: number, resetAfter: number): void;\r\n}\r\n\r\n\r\n\r\n\r\nexport class IntervalCounter implements Counter {\r\n\r\n\r\n\r\n\tpublic remaining: number;\r\n\r\n\tprivate firstRequestTime = 0;\r\n\r\n\tprivate resetAt: number | null = null;\r\n\r\n\tpublic readonly id = new Array(3).fill(0).map(() => String.fromCodePoint(Math.floor(Math.random()*26+65))).join(\"\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public limit: number, public reset: number) {\r\n\t\tthis.remaining = limit;\r\n\t}\r\n\r\n\tprivate checkReset(): void {\r\n\r\n\t\tconst now = Date.now();\r\n\r\n\t\tif (this.resetAt !== null) {\r\n\t\t\tif (now > this.resetAt) {\r\n\t\t\t\tthis.firstRequestTime = 0;\r\n\t\t\t\tthis.remaining = this.limit;\r\n\t\t\t\tthis.resetAt = null;\r\n\t\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [itrv] [${this.id}] informed reset: ${this.remaining}/${this.limit}`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telse if (now > this.firstRequestTime + this.reset) {\r\n\t\t\tthis.firstRequestTime = 0;\r\n\t\t\tthis.remaining = this.limit;\r\n\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [itrv] [${this.id}] predicted reset: ${this.remaining}/${this.limit}`);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic hasReset(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining === this.limit;\r\n\t}\r\n\r\n\tpublic canTake(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining > 0;\r\n\t}\r\n\r\n\tpublic take(): boolean {\r\n\t\tthis.checkReset();\r\n\t\tif (this.remaining === this.limit) this.firstRequestTime = Date.now();\r\n\t\tlet ok = this.remaining > 0;\r\n\t\tthis.remaining--;\r\n\t\treturn ok;\r\n\t}\r\n\r\n\tpublic timeUntilReset(): number {\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt) return Math.max(this.resetAt - now + 1, 0);\r\n\t\telse return Math.max(this.firstRequestTime + this.reset - Date.now() + 1, 0);\r\n\t}\r\n\r\n\r\n\tpublic responseReceived(): void {\r\n\t\tif (this.remaining === this.limit-1 && this.firstRequestTime) this.firstRequestTime = Date.now()\r\n\t}\r\n\r\n\tpublic applyCount(limit: number | null, remaining: number, resetAfter: number): void {\r\n\t\tif (limit != null) this.limit = limit;\r\n\t\tthis.remaining = remaining;\r\n\t\tthis.resetAt = Date.now() + resetAfter;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nexport class LeakyCounter implements Counter {\r\n\r\n\r\n\r\n\tpublic remaining: number;\r\n\r\n\tprivate resetAt: number | null = null;\r\n\r\n\tpublic readonly id = new Array(3).fill(0).map(() => String.fromCodePoint(Math.floor(Math.random()*26+65))).join(\"\");\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public limit: number) {\r\n\t\tthis.remaining = limit;\r\n\t}\r\n\r\n\tprivate checkReset(): void {\r\n\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt && now > this.resetAt) {\r\n\t\t\tthis.remaining = Math.min(this.limit, this.remaining + 1);\r\n\t\t\tthis.resetAt = null;\r\n\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] restore one: ${this.remaining}/${this.limit}`);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic hasReset(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining === this.limit;\r\n\t}\r\n\r\n\tpublic canTake(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining > 0;\r\n\t}\r\n\r\n\tpublic take(): boolean {\r\n\t\tthis.checkReset();\r\n\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] took: ${this.remaining-1} left`);\r\n\t\treturn this.remaining-- > 0;\r\n\t}\r\n\r\n\tpublic timeUntilReset(): number {\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt) return Math.max(this.resetAt - now + 1, 0);\r\n\t\telse return 0;\r\n\t}\r\n\r\n\tpublic responseReceived(): void {}\r\n\r\n\tpublic applyCount(limit: number | null, remaining: number, resetAfter: number): void {\r\n\t\tif (limit != null) this.limit = limit;\r\n\t\tthis.remaining = remaining;\r\n\t\tthis.resetAt = Date.now() + resetAfter;\r\n\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] applied: ${remaining}/${limit} - wait another ${resetAfter}`);\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\nexport class Bucket {\r\n\r\n\tpublic readonly sm = new SM(\"ready\");\r\n\r\n\tpublic readonly calls: Array<() => any> = [];\r\n\r\n\tpublic readonly counters: Array<Counter> = [];\r\n\r\n\tprivate pauseRequested = false;\r\n\r\n\r\n\r\n\r\n\tpublic constructor(counters: Array<Counter>) {\r\n\t\tthis.counters = counters;\r\n\r\n\r\n\t\tthis.sm.defineState(\"ready\", {\r\n\t\t\tonEnter: [],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"enqueue\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"pause\", {\r\n\t\t\t\t\tdestination: \"paused\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"check\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tif (this.pauseRequested) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"pause\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!this.counters.every(c => c.canTake())) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"cooldown\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.calls.length) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"run\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.sm.doTransition(\"empty\");\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"pause\", {\r\n\t\t\t\t\tdestination: \"paused\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"cooldown\", {\r\n\t\t\t\t\tdestination: \"cooldown\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"run\", {\r\n\t\t\t\t\tdestination: \"running\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"empty\", {\r\n\t\t\t\t\tdestination: \"ready\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"running\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\r\n\t\t\t\t\tthis.counters.forEach(c => c.take());\r\n\r\n\t\t\t\t\tconst cb = this.calls.shift();\r\n\t\t\t\t\tcb!().then(() => {\r\n\t\t\t\t\t\tthis.sm.doTransition(\"complete\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"complete\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"cooldown\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.sm.doTransitionLater(\"reset\", Math.max(...this.counters.map(c => c.timeUntilReset())));\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"reset\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"paused\", {\r\n\t\t\tonEnter: [],\r\n\t\t\tonLeave: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.pauseRequested = false;\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"resume\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\t\tthis.sm.freeze();\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic enqueue<T>(fn: (bkt: this) => Promise<T>): Promise<T> {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.calls.push(() => {\r\n\t\t\t\treturn fn(this).then(resolve).catch(reject);\r\n\t\t\t});\r\n\r\n\t\t\tif (this.sm.currentStateName === \"ready\") this.sm.doTransition(\"enqueue\");\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic pause(): void {\r\n\t\tthis.pauseRequested = true;\r\n\t\tif (this.sm.currentStateName === \"ready\") this.sm.doTransition(\"pause\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic resume(): void {\r\n\t\tthis.pauseRequested = false;\r\n\t\tif (this.sm.currentStateName !== \"paused\") return\r\n\t\tthis.sm.doTransition(\"resume\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic dropQueue(): void {\r\n\t\tthis.calls.length = 0;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport class Ratelimiter {\r\n\r\n\r\n\r\n\tpublic readonly buckets = new Map<string, Bucket>();\r\n\r\n\r\n\r\n\tpublic readonly globalBucket = new Bucket([new IntervalCounter(Constants.GLOBAL_REQUESTS_PER_SECOND, 1000)]);\r\n\r\n\r\n\r\n\r\n\tpublic get global() {\r\n\t\treturn !this.globalBucket.counters[0].canTake();\r\n\t}\r\n\r\n\tpublic constructor() {\r\n\t\tsetInterval(() => {\r\n\t\t\tfor (const [key, value] of this.buckets.entries()) {\r\n\t\t\t\tconst counter = value.counters[0];\r\n\t\t\t\tif (counter.hasReset()) this.buckets.delete(key);\r\n\t\t\t}\r\n\t\t}, 1*60*60*1000).unref();\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic routify(url: string, method: string): string {\r\n\t\tlet route = url.replaceAll(routeRegex, function (match, p: string) {\r\n\t\t\treturn p === \"channels\" || p === \"guilds\" || p === \"webhooks\" ? match : `/${p}/:id`;\r\n\t\t}).replaceAll(reactionsRegex, \"/reactions/:id\").replaceAll(reactionsUserRegex, \"/reactions/:id/:userId\").replace(webhooksRegex, \"/webhooks/$1/:token\");\r\n\r\n\t\tif (method === \"DELETE\" && isMessageEndpointRegex.test(route)) route = method + route;\r\n\t\telse if (method === \"GET\" && isGuildChannelsRegex.test(route)) route = \"/guilds/:id/channels\";\r\n\r\n\t\tif (method === \"PUT\" || method === \"DELETE\") {\r\n\t\t\tconst index = route.indexOf(\"/reactions\");\r\n\t\t\tif (index !== -1) route = \"MODIFY\" + route.slice(0, index + 10);\r\n\t\t}\r\n\r\n\t\treturn route;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic queue<T>(fn: (bucket: Bucket) => Promise<T>, url: string, method: string): Promise<T> {\r\n\t\tconst routeKey = this.routify(url, method);\r\n\r\n\t\tlet bucket = this.buckets.get(routeKey);\r\n\t\tif (!bucket) {\r\n\t\t\tif (method === \"DELETE\" && messagesRegex.test(url)) {\r\n\t\t\t\tbucket = new Bucket([new LeakyCounter(1), new IntervalCounter(5, 5000), this.globalBucket.counters[0]]);\r\n\t\t\t} else bucket = new Bucket([new LeakyCounter(1), this.globalBucket.counters[0]]);\r\n\t\t\tthis.buckets.set(routeKey, bucket);\r\n\t\t}\r\n\r\n\t\treturn bucket.enqueue(fn);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic setGlobal(ms: number): void {\r\n\t\tthis.globalBucket.counters[0].applyCount(Constants.GLOBAL_REQUESTS_PER_SECOND, 0, ms);\r\n\t}\r\n}\r\n\r\nexport namespace RequestHandler {\r\n\texport type Options = {\r\n\r\n\t\tbaseHost: string;\r\n\r\n\t\tbaseURL: string;\r\n\r\n\t\tbypassBuckets: boolean;\r\n\r\n\t\tretryFailed: boolean;\r\n\r\n\t\tretryLimit: number;\r\n\t\theaders: { Authorization?: string; \"User-Agent\": string; },\r\n\t\tfetch: typeof fetch\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport class RequestHandler extends EventEmitter<HandlerEvents> {\r\n\tpublic options: RequestHandler.Options;\r\n\tpublic latency: number;\r\n\tpublic apiURL: string;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public ratelimiter: Ratelimiter, options?: { token?: string; } & Partial<Omit<RequestHandler.Options, \"headers\">>) {\r\n\t\tsuper();\r\n\r\n\t\tthis.options = {\r\n\t\t\tbaseHost: options?.baseHost ?? Endpoints.BASE_HOST,\r\n\t\t\tbaseURL: options?.baseURL ?? Endpoints.BASE_URL,\r\n\t\t\tbypassBuckets: options?.bypassBuckets ?? false,\r\n\t\t\tretryFailed: options?.retryFailed ?? false,\r\n\t\t\tretryLimit: options?.retryLimit ?? Constants.DEFAULT_RETRY_LIMIT,\r\n\t\t\theaders: {\r\n\t\t\t\t\"User-Agent\": `Discordbot (https:\r\n\t\t\t},\r\n\t\t\tfetch: options?.fetch ?? fetch\r\n\t\t};\r\n\t\tif (options?.token) this.options.headers.Authorization = options.token;\r\n\r\n\t\tthis.apiURL = this.options.baseHost + Endpoints.BASE_URL;\r\n\t\tthis.latency = 500;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"json\", data?: any, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: boolean): Promise<any>\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"multipart\", data?: FormData, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: boolean): Promise<any>\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"json\" | \"multipart\", data?: any, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: true): Promise<Response>\r\n\tpublic request(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, dataType: \"json\" | \"multipart\", data?: any, extraHeaders?: Record<string, string>, retries = this.options.retryLimit, rawResponse = false): Promise<any> {\r\n\t\tconst stack = new Error().stack as string;\r\n\t\treturn new Promise(async (resolve, reject) => {\r\n\t\t\tconst fn = async (bkt?: Bucket | undefined) => {\r\n\t\t\t\tconst reqId = crypto.randomBytes(20).toString(\"hex\");\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst request = { endpoint, method: method.toUpperCase(), dataType, data: data ?? {} };\r\n\t\t\t\t\tthis.emit(\"request\", reqId, request);\r\n\r\n\t\t\t\t\tconst before = Date.now();\r\n\r\n\t\t\t\t\tlet response: Response;\r\n\t\t\t\t\tswitch (dataType) {\r\n\t\t\t\t\tcase \"json\":\r\n\t\t\t\t\t\tresponse = await this._request(endpoint, params, method, data, extraHeaders);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"multipart\":\r\n\t\t\t\t\t\tif (!data) throw new Error(\"No multipart data\");\r\n\t\t\t\t\t\tresponse = await this._multiPartRequest(endpoint, params, method, data, extraHeaders);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthrow new Error(\"Forbidden dataType. Use json or multipart or ensure multipart has FormData\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.latency = Date.now() - before;\r\n\t\t\t\t\tbkt?.counters.forEach(c => c.responseReceived());\r\n\r\n\t\t\t\t\tif (bkt) this._applyRatelimitHeaders(bkt, response.headers);\r\n\r\n\t\t\t\t\tif (response.status && !Constants.OK_STATUS_CODES.has(response.status) && response.status !== 429) {\r\n\t\t\t\t\t\tif (this.options.retryFailed && !Constants.DO_NOT_RETRY_STATUS_CODES.has(response.status) && retries !== 0) return this.request(endpoint, params, method, dataType, data, extraHeaders, retries--).then(resolve).catch(reject);\r\n\t\t\t\t\t\tthrow new DiscordAPIError({ message: await response.text() }, request, response);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (response.status === 429) {\r\n\t\t\t\t\t\tconst b = await response.json() as RatelimitInfo;\r\n\t\t\t\t\t\tif (b.global) this.ratelimiter.setGlobal(b.retry_after * 1000);\r\n\t\t\t\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [rate] [${bkt?.counters[0].id}] !! 429 - guess there was 0 remaining, wait another ${b.retry_after*1000} (route: ${this.ratelimiter.routify(endpoint, method.toUpperCase())})`);\r\n\t\t\t\t\t\tthis.emit(\"rateLimit\", {\r\n\t\t\t\t\t\t\tmethod: method.toUpperCase(),\r\n\t\t\t\t\t\t\tpath: endpoint,\r\n\t\t\t\t\t\t\troute: this.ratelimiter.routify(endpoint, method.toUpperCase())\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (this.options.retryFailed && retries !== 0) return this.request(endpoint, params, method, dataType, data, extraHeaders, 0).then(resolve).catch(reject);\r\n\r\n\t\t\t\t\t\tthrow new DiscordAPIError({ message: b.message, code: b.code ?? 429 }, request, response);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.emit(\"done\", reqId, response, request);\r\n\r\n\t\t\t\t\tif (rawResponse) return resolve(response);\r\n\r\n\t\t\t\t\tif (response.body) {\r\n\t\t\t\t\t\tlet b: any;\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tb = await response.json();\r\n\t\t\t\t\t\t} catch {\r\n\t\t\t\t\t\t\treturn resolve(undefined);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn resolve(b);\r\n\t\t\t\t\t} else return resolve(undefined);\r\n\t\t\t\t} catch (error) {\r\n\t\t\t\t\tif (error?.stack) error.stack = error.stack + `\\n${stack.split(\"\\n\").slice(1).join(\"\\n\")}`;\r\n\t\t\t\t\tthis.emit(\"requestError\", reqId, error);\r\n\t\t\t\t\treturn reject(error as Error);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif (this.options.bypassBuckets) fn();\r\n\t\t\telse this.ratelimiter.queue(fn, endpoint, method.toUpperCase());\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate _applyRatelimitHeaders(bkt: Bucket, headers: Headers): void {\r\n\t\tconst remaining = headers.get(\"x-ratelimit-remaining\");\r\n\t\tconst limit = headers.get(\"x-ratelimit-limit\");\r\n\t\tconst resetAfter = headers.get(\"x-ratelimit-reset-after\");\r\n\t\tconst isGlobal = headers.get(\"x-ratelimit-global\");\r\n\r\n\t\tif (remaining === null && !bkt.counters[0].canTake() && !isGlobal) {\r\n\r\n\t\t\tbkt.counters[0].applyCount(null, 1, 0);\r\n\t\t}\r\n\r\n\t\tif (remaining && limit && resetAfter && !isGlobal) {\r\n\t\t\tbkt.counters[0].applyCount(Number.parseInt(limit), Number.parseInt(remaining), Number.parseFloat(resetAfter) * 1000);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate async _request(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, data?: any, extraHeaders?: Record<string, string>): Promise<Response> {\r\n\t\tconst headers = { ...this.options.headers, ...extraHeaders };\r\n\r\n\t\tlet body: string | undefined = undefined;\r\n\t\tif (!disallowedBodyMethods.has(method)) {\r\n\t\t\tif (typeof data === \"object\") body = JSON.stringify(data);\r\n\t\t\telse body = String(data);\r\n\r\n\t\t\theaders[\"Content-Type\"] = \"application/json\";\r\n\t\t}\r\n\r\n\t\treturn this.options.fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`, {\r\n\t\t\tmethod: method.toUpperCase(),\r\n\t\t\theaders,\r\n\t\t\tbody\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate async _multiPartRequest(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, data: FormData, extraHeaders?: Record<string, string>): Promise<Response> {\r\n\t\tconst headers = { ...this.options.headers, ...extraHeaders };\r\n\r\n\t\treturn this.options.fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`, {\r\n\t\t\tmethod: method.toUpperCase(),\r\n\t\t\theaders,\r\n\t\t\tbody: data\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction appendQuery(query: Record<string, any>): string {\r\n\tlet count = 0;\r\n\tfor (const [key, value] of Object.entries(query)) {\r\n\t\tif (value == undefined) delete query[key];\r\n\t\telse count++;\r\n\t}\r\n\r\n\treturn count > 0 ? `?${new URLSearchParams(query).toString()}` : \"\";\r\n}\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIAuditLogQuery,\r\n\tRESTGetAPIAuditLogResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AuditLogMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAuditLog(guildId: string, options?: RESTGetAPIAuditLogQuery): Promise<RESTGetAPIAuditLogResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUDIT_LOGS(guildId), options, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = AuditLogMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIAutoModerationRulesResult,\r\n\tRESTGetAPIAutoModerationRuleResult,\r\n\tRESTPostAPIAutoModerationRuleJSONBody,\r\n\tRESTPostAPIAutoModerationRuleResult,\r\n\tRESTPatchAPIAutoModerationRuleJSONBody,\r\n\tRESTPatchAPIAutoModerationRuleResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AutoModerationMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAutoModerationRules(guildId: string): Promise<RESTGetAPIAutoModerationRulesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAutoModerationRule(guildId: string, ruleId: string): Promise<RESTGetAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createAutoModerationRule(guildId: string, data: RESTPostAPIAutoModerationRuleJSONBody, reason?: string): Promise<RESTPostAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULES(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editAutoModerationRule(guildId: string, ruleId: string, data: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string): Promise<RESTPatchAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAutoModerationRule(guildId: string, ruleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n}\r\n\r\nexport = AutoModerationMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIGatewayBotResult,\r\n\tRESTGetAPIGatewayResult,\r\n\tAPIApplication,\r\n\tRESTPatchCurrentApplicationJSONBody\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass BotMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGateway(): Promise<RESTGetAPIGatewayResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GATEWAY, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGatewayBot(): Promise<RESTGetAPIGatewayBotResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GATEWAY_BOT, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationInfo(): Promise<APIApplication> {\r\n\t\treturn this.requestHandler.request(Endpoints.OAUTH2_APPLICATION(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateApplicationInfo(data: RESTPatchCurrentApplicationJSONBody): Promise<APIApplication> {\r\n\t\treturn this.requestHandler.request(Endpoints.OAUTH2_APPLICATION(\"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n}\r\n\r\nexport = BotMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport {\r\n\ttype APITextBasedChannel,\r\n\ttype APIThreadChannel,\r\n\ttype ChannelType,\r\n\r\n\r\n\r\n\r\n\r\n\r\n\ttype RESTDeleteAPIChannelResult,\r\n\r\n\ttype RESTGetAPIChannelInvitesResult,\r\n\ttype RESTGetAPIChannelMessageReactionUsersQuery,\r\n\ttype RESTGetAPIChannelMessageReactionUsersResult,\r\n\ttype RESTGetAPIChannelMessageResult,\r\n\ttype RESTGetAPIChannelMessagesQuery,\r\n\ttype RESTGetAPIChannelMessagesResult,\r\n\ttype RESTGetAPIChannelMessagesPinsResult,\r\n\ttype RESTGetAPIChannelResult,\r\n\ttype RESTGetAPIChannelThreadMemberResult,\r\n\ttype RESTGetAPIChannelThreadMembersQuery,\r\n\ttype RESTGetAPIChannelThreadMembersResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedPrivateResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedPublicResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedQuery,\r\n\ttype RESTGetAPIChannelUsersThreadsArchivedResult,\r\n\ttype RESTPatchAPIChannelJSONBody,\r\n\ttype RESTPatchAPIChannelMessageJSONBody,\r\n\ttype RESTPatchAPIChannelMessageResult,\r\n\ttype RESTPatchAPIChannelResult,\r\n\ttype RESTPostAPIChannelFollowersResult,\r\n\ttype RESTPostAPIChannelInviteJSONBody,\r\n\ttype RESTPostAPIChannelInviteResult,\r\n\ttype RESTPostAPIChannelMessageCrosspostResult,\r\n\ttype RESTPostAPIChannelMessageJSONBody,\r\n\ttype RESTPostAPIChannelMessageResult,\r\n\r\n\ttype RESTPostAPIChannelMessagesThreadsJSONBody,\r\n\ttype RESTPostAPIChannelMessagesThreadsResult,\r\n\ttype RESTPostAPIChannelThreadsJSONBody,\r\n\r\n\r\n\ttype RESTPutAPIChannelPermissionJSONBody,\r\n\r\n\r\n\r\n\ttype RESTGetAPIPollAnswerVotersQuery,\r\n\ttype RESTGetAPIPollAnswerVotersResult,\r\n\ttype RESTPostAPIPollExpireResult,\r\n\ttype RESTGetAPIChannelMessagesPinsQuery,\r\n\tMessageReferenceType,\r\n\tMessageFlags\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type {\r\n\r\n\tRESTPostAPIAttachmentsRefreshURLsResult\r\n} from \"../Types\"\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ChannelMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannel(channelId: string): Promise<RESTGetAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateChannel(channelId: string, data: Omit<RESTPatchAPIChannelJSONBody, \"archived\" | \"auto_archive_duration\" | \"locked\" | \"invitable\">, reason?: string): Promise<Exclude<RESTPatchAPIChannelResult, APIThreadChannel>>;\r\n\tpublic async updateChannel(channelId: string, data: Pick<RESTPatchAPIChannelJSONBody, \"archived\" | \"auto_archive_duration\" | \"locked\" | \"name\" | \"rate_limit_per_user\">, reason?: string): Promise<Extract<RESTPatchAPIChannelResult, APIThreadChannel>>;\r\n\tpublic async updateChannel(channelId: string, data: RESTPatchAPIChannelJSONBody, reason?: string): Promise<RESTPatchAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteChannel(channelId: string, reason?: string): Promise<RESTDeleteAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelMessages(channelId: string, options: RESTGetAPIChannelMessagesQuery = { limit: 50 }): Promise<RESTGetAPIChannelMessagesResult> {\r\n\t\tif (options.around) {\r\n\t\t\tdelete options.before;\r\n\t\t\tdelete options.after;\r\n\t\t} else if (options.before) {\r\n\t\t\tdelete options.around;\r\n\t\t\tdelete options.after;\r\n\t\t} else if (options.after) {\r\n\t\t\tdelete options.before;\r\n\t\t\tdelete options.around;\r\n\t\t}\r\n\t\tif (options.limit !== undefined && (options.limit < Constants.GET_CHANNEL_MESSAGES_MIN_RESULTS || options.limit > Constants.GET_CHANNEL_MESSAGES_MAX_RESULTS)) throw new RangeError(`Amount of messages that may be requested has to be between ${Constants.GET_CHANNEL_MESSAGES_MIN_RESULTS} and ${Constants.GET_CHANNEL_MESSAGES_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelMessage(channelId: string, messageId: string): Promise<RESTGetAPIChannelMessageResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createMessage(channelId: string, data: string | RESTPostAPIChannelMessageJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPostAPIChannelMessageResult> {\r\n\t\tif (typeof data !== \"string\" && !data.content && (!data.message_reference || (data.message_reference && data.message_reference.type === MessageReferenceType.Default)) && !data.embeds && !data.sticker_ids && !data.components && !data.files && !data.poll) throw new Error(\"Missing content, message_reference type 1, embeds, sticker_ids, components, files, or poll\");\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\t\tif ((data.content || data.embeds) && data.flags && (data.flags & MessageFlags.IsComponentsV2) === MessageFlags.IsComponentsV2) throw new Error(\"The message flags was set to include IsComponentsV2, but content and/or embeds were also present. You can either have content/embeds or components v2, not both.\");\r\n\r\n\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createVoiceMessage(channelId: string, data: Buffer, audioDurationSeconds: number, waveform = \"\"): Promise<RESTPostAPIChannelMessageResult> {\r\n\r\n\t\tconst { upload_url, upload_filename } = await this.requestHandler.request(Endpoints.CHANNEL_ATTACHMENTS(channelId), {}, \"post\", \"json\", {\r\n\t\t\tfiles: [{\r\n\t\t\t\tid: \"69420\",\r\n\t\t\t\tfilename: \"voice-message.ogg\",\r\n\t\t\t\tfile_size: data.byteLength\r\n\t\t\t}]\r\n\t\t}).then(d => d.attachments[0]);\r\n\r\n\r\n\t\tawait fetch(upload_url, { method: \"PUT\", body: data });\r\n\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"json\", {\r\n\t\t\tattachments: [{\r\n\t\t\t\tid: \"42069\",\r\n\t\t\t\tuploaded_filename: upload_filename,\r\n\t\t\t\tfilename: \"voice-message.ogg\",\r\n\t\t\t\tduration_secs: audioDurationSeconds,\r\n\t\t\t\twaveform\r\n\t\t\t}],\r\n\t\t\tflags: 1 << 13\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async crosspostMessage(channelId: string, messageId: string): Promise<RESTPostAPIChannelMessageCrosspostResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_CROSSPOST(channelId, messageId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createReaction(channelId: string, messageId: string, emoji: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, \"@me\"), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteReactionSelf(channelId: string, messageId: string, emoji: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, \"@me\"), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteReaction(channelId: string, messageId: string, emoji: string, userId?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(userId ? Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, userId) : Endpoints.CHANNEL_MESSAGE_REACTION(channelId, messageId, emoji), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getReactions(channelId: string, messageId: string, emoji: string, options?: RESTGetAPIChannelMessageReactionUsersQuery): Promise<RESTGetAPIChannelMessageReactionUsersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION(channelId, messageId, emoji), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAllReactions(channelId: string, messageId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTIONS(channelId, messageId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editMessage(channelId: string, messageId: string, data: string | RESTPatchAPIChannelMessageJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIChannelMessageResult> {\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\r\n\t\tif (data.content || data.components) data.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"patch\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkDeleteMessages(channelId: string, messages: Array<string>, reason?: string): Promise<void> {\r\n\t\tif (messages.length < Constants.BULK_DELETE_MESSAGES_MIN || messages.length > Constants.BULK_DELETE_MESSAGES_MAX) throw new RangeError(`Amount of messages to be deleted has to be between ${Constants.BULK_DELETE_MESSAGES_MIN} and ${Constants.BULK_DELETE_MESSAGES_MAX}`);\r\n\r\n\t\tconst oldestSnowflake = BigInt(Date.now() - 1421280000000) * (BigInt(2) ** BigInt(22));\r\n\t\tconst forbiddenMessage = messages.find(m => BigInt(m) < oldestSnowflake);\r\n\t\tif (forbiddenMessage) throw new Error(`The message ${forbiddenMessage} is older than 2 weeks and may not be deleted using the bulk delete endpoint`);\r\n\t\tconst data = { messages };\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_BULK_DELETE(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editChannelPermission(channelId: string, permissionId: string, data: RESTPutAPIChannelPermissionJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PERMISSION(channelId, permissionId), {}, \"put\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelInvites(channelId: string): Promise<RESTGetAPIChannelInvitesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createChannelInvite(channelId: string, data: RESTPostAPIChannelInviteJSONBody & { target_users?: Array<string>; role_ids?: Array<string> } = { max_age: 86400, max_uses: 0, temporary: false, unique: false }, reason?: string): Promise<RESTPostAPIChannelInviteResult> {\r\n\t\tconst targetUsers = data?.target_users;\r\n\r\n\t\tif (targetUsers?.length) {\r\n\t\t\tdelete data.target_users;\r\n\t\t\tconst form = new FormData();\r\n\r\n\t\t\tawait Constants.standardAddToFormHandler(form, \"target_users_file\", `Users\\n${targetUsers.join(\",\\n\")},`, \"target_users_file.csv\");\r\n\t\t\tform.append(\"payload_json\", JSON.stringify(data));\r\n\t\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"post\", \"multipart\", form, Constants.reasonHeader(reason));\r\n\t\t}\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteChannelPermission(channelId: string, permissionId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PERMISSION(channelId, permissionId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async followAnnouncementChannel(channelId: string, webhookChannelId: string, reason?: string): Promise<RESTPostAPIChannelFollowersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_FOLLOWERS(channelId), {}, \"post\", \"json\", { webhook_channel_id: webhookChannelId }, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async startChannelTyping(channelId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_TYPING(channelId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelPinnedMessages(channelId: string, options?: RESTGetAPIChannelMessagesPinsQuery): Promise<RESTGetAPIChannelMessagesPinsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PINS(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addChannelPinnedMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PIN(channelId, messageId), {}, \"put\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeChannelPinnedMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PIN(channelId, messageId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createThreadWithMessage(channelId: string, messageId: string, data: RESTPostAPIChannelMessagesThreadsJSONBody, reason?: string): Promise<RESTPostAPIChannelMessagesThreadsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_THREADS(channelId, messageId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 10; }, reason?: string): Promise<APITextBasedChannel<ChannelType.AnnouncementThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 11; }, reason?: string): Promise<APITextBasedChannel<ChannelType.PublicThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 12; }, reason?: string): Promise<APITextBasedChannel<ChannelType.PrivateThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: RESTPostAPIChannelThreadsJSONBody, reason?: string): Promise<APITextBasedChannel<ChannelType.PublicThread | ChannelType.PrivateThread | ChannelType.AnnouncementThread>> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async joinThread(threadId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, \"@me\"), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addThreadMember(threadId: string, userId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async leaveThread(threadId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, \"@me\"), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeThreadMember(threadId: string, userId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getThreadMember(threadId: string, userId: string, withMember?: boolean): Promise<RESTGetAPIChannelThreadMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), { with_member: withMember }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getThreadMembers(channelId: string, options?: RESTGetAPIChannelThreadMembersQuery): Promise<RESTGetAPIChannelThreadMembersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBERS(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPublicThreads(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelThreadsArchivedPublicResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PUBLIC(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPrivateThreads(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelThreadsArchivedPrivateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PRIVATE(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPrivateThreadsUser(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelUsersThreadsArchivedResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PRIVATE_USER(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async refreshAttachmentURLs(attachments: string | Array<string>): Promise<RESTPostAPIAttachmentsRefreshURLsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.ATTACHMENTS_REFRESH_URLS, {}, \"post\", \"json\", {\r\n\t\t\tattachment_urls: Array.isArray(attachments) ? attachments : [attachments]\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getPollAnswerVoters(channelId: string, messageId: string, answerId: string, options?: RESTGetAPIPollAnswerVotersQuery): Promise<RESTGetAPIPollAnswerVotersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.POLL_ANSWER(channelId, messageId, answerId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async endPoll(channelId: string, messageId: string): Promise<RESTPostAPIPollExpireResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.POLL_EXPIRE(channelId, messageId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async setVoiceChannelStatus(channelId: string, status: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_VOICE_STATUS(channelId), {}, \"put\", \"json\", { status });\r\n\t}\r\n}\r\n\r\nexport = ChannelMethods;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import Constants = require(\"../Constants\");\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\r\n\tRESTGetAPIApplicationEmojisResult,\r\n\tRESTGetAPIApplicationEmojiResult,\r\n\tRESTGetAPIGuildEmojiResult,\r\n\tRESTGetAPIGuildEmojisResult,\r\n\tRESTGetAPIGuildStickerResult,\r\n\tRESTGetAPIGuildStickersResult,\r\n\tRESTGetAPIStickerResult,\r\n\tRESTPatchAPIGuildEmojiJSONBody,\r\n\tRESTPatchAPIGuildEmojiResult,\r\n\tRESTPatchAPIGuildStickerJSONBody,\r\n\tRESTPatchAPIGuildStickerResult,\r\n\tRESTPostAPIGuildEmojiJSONBody,\r\n\tRESTPostAPIGuildEmojiResult,\r\n\tRESTPostAPIGuildStickerFormDataBody,\r\n\tRESTPostAPIGuildStickerResult,\r\n\tRESTPostAPIApplicationEmojiResult,\r\n\tRESTPostAPIApplicationEmojiJSONBody,\r\n\tRESTPatchAPIApplicationEmojiJSONBody,\r\n\tRESTPatchAPIApplicationEmojiResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Blob } from \"buffer\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AssetsMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildEmojis(guildId: string): Promise<RESTGetAPIGuildEmojisResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJIS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildEmoji(guildId: string, emojiId: string): Promise<RESTGetAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildEmoji(guildId: string, data: RESTPostAPIGuildEmojiJSONBody, reason?: string): Promise<RESTPostAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJIS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildEmoji(guildId: string, emojiId: string, data: RESTPatchAPIGuildEmojiJSONBody, reason?: string): Promise<RESTPatchAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildEmoji(guildId: string, emojiId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSticker(stickerId: string): Promise<RESTGetAPIStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STICKER(stickerId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildStickers(guildId: string): Promise<RESTGetAPIGuildStickersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKERS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildSticker(guildId: string, stickerId: string): Promise<RESTGetAPIGuildStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildSticker(guildId: string, data: RESTPostAPIGuildStickerFormDataBody & { file: Buffer | Blob | File | Readable | ReadableStream; }, reason?: string): Promise<RESTPostAPIGuildStickerResult> {\r\n\t\tconst form = new FormData();\r\n\r\n\t\tfor (const [key, value] of Object.entries(data)) {\r\n\t\t\tawait Constants.standardAddToFormHandler(form, key, value);\r\n\t\t}\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKERS(guildId), {}, \"post\", \"multipart\", form, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildSticker(guildId: string, stickerId: string, data: RESTPatchAPIGuildStickerJSONBody, reason?: string): Promise<RESTPatchAPIGuildStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildSticker(guildId: string, stickerId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAppEmojis(appId: string): Promise<RESTGetAPIApplicationEmojisResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJIS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAppEmoji(appId: string, emojiId: string): Promise<RESTGetAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createAppEmoji(appId: string, data: RESTPostAPIApplicationEmojiJSONBody): Promise<RESTPostAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJIS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateAppEmoji(appId: string, emojiId: string, data: RESTPatchAPIApplicationEmojiJSONBody): Promise<RESTPatchAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAppEmoji(appId: string, emojiId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = AssetsMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type {\r\n\tRESTGetAPIEntitlementsResult,\r\n\tRESTGetAPIEntitlementResult,\r\n\r\n\tRESTPostAPIEntitlementJSONBody,\r\n\tRESTPostAPIEntitlementResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass EntitlementMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getEntitlements(appId: string): Promise<RESTGetAPIEntitlementsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENTS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getEntitlement(appId: string, entitlementId: string): Promise<RESTGetAPIEntitlementResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async consumeEntitlement(appId: string, entitlementId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT_CONSUME(appId, entitlementId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createTestEntitlement(appId: string, data: RESTPostAPIEntitlementJSONBody): Promise<RESTPostAPIEntitlementResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENTS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteTestEntitlement(appId: string, entitlementId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = EntitlementMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tAPIGuildMember,\r\n\tAPIGuildWidget,\r\n\r\n\r\n\r\n\r\n\r\n\tRESTGetAPIGuildBanResult,\r\n\tRESTGetAPIGuildBansQuery,\r\n\tRESTGetAPIGuildBansResult,\r\n\tRESTGetAPIGuildChannelsResult,\r\n\tRESTGetAPIGuildIntegrationsResult,\r\n\tRESTGetAPIGuildInvitesResult,\r\n\tRESTGetAPIGuildMemberResult,\r\n\tRESTGetAPIGuildMembersQuery,\r\n\tRESTGetAPIGuildMembersResult,\r\n\tRESTGetAPIGuildMembersSearchQuery,\r\n\tRESTGetAPIGuildMembersSearchResult,\r\n\tRESTGetAPIGuildPreviewResult,\r\n\tRESTGetAPIGuildPruneCountQuery,\r\n\tRESTGetAPIGuildPruneCountResult,\r\n\tRESTGetAPIGuildResult,\r\n\tRESTGetAPIGuildRolesResult,\r\n\tRESTGetAPIGuildThreadsResult,\r\n\tRESTGetAPIGuildVanityUrlResult,\r\n\tRESTGetAPIGuildVoiceRegionsResult,\r\n\tRESTGetAPIGuildWelcomeScreenResult,\r\n\tRESTGetAPIGuildWidgetSettingsResult,\r\n\tRESTPatchAPICurrentGuildMemberJSONBody,\r\n\tRESTPatchAPIGuildChannelPositionsJSONBody,\r\n\r\n\tRESTPatchAPIGuildJSONBody,\r\n\tRESTPatchAPIGuildMemberJSONBody,\r\n\tRESTPatchAPIGuildMemberResult,\r\n\tRESTPatchAPIGuildResult,\r\n\tRESTPatchAPIGuildRoleJSONBody,\r\n\tRESTPatchAPIGuildRolePositionsJSONBody,\r\n\tRESTPatchAPIGuildRolePositionsResult,\r\n\tRESTPatchAPIGuildRoleResult,\r\n\tRESTPatchAPIGuildVoiceStateCurrentMemberJSONBody,\r\n\r\n\tRESTPatchAPIGuildVoiceStateUserJSONBody,\r\n\r\n\tRESTPatchAPIGuildWelcomeScreenJSONBody,\r\n\tRESTPatchAPIGuildWelcomeScreenResult,\r\n\tRESTPatchAPIGuildWidgetSettingsJSONBody,\r\n\tRESTPatchAPIGuildWidgetSettingsResult,\r\n\tRESTPostAPIGuildChannelJSONBody,\r\n\tRESTPostAPIGuildChannelResult,\r\n\tRESTPostAPIGuildPruneJSONBody,\r\n\tRESTPostAPIGuildPruneResult,\r\n\tRESTPostAPIGuildRoleJSONBody,\r\n\tRESTPostAPIGuildRoleResult,\r\n\tRESTPutAPIGuildBanJSONBody,\r\n\r\n\tRESTPutAPIGuildMemberJSONBody,\r\n\tRESTPutAPIGuildMemberResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuild(guildId: string, withCounts?: boolean): Promise<RESTGetAPIGuildResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD(guildId), { with_counts: withCounts }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildPreview(guildId: string): Promise<RESTGetAPIGuildPreviewResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PREVIEW(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuild(guildId: string, data: RESTPatchAPIGuildJSONBody, reason?: string): Promise<RESTPatchAPIGuildResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildChannels(guildId: string): Promise<RESTGetAPIGuildChannelsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildChannel(guildId: string, data: RESTPostAPIGuildChannelJSONBody, reason?: string): Promise<RESTPostAPIGuildChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateChannelPositions(guildId: string, data: RESTPatchAPIGuildChannelPositionsJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async listActiveThreads(guildId: string): Promise<RESTGetAPIGuildThreadsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_THREADS_ACTIVE(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildMember(guildId: string, memberId: string): Promise<RESTGetAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildMembers(guildId: string, options?: RESTGetAPIGuildMembersQuery): Promise<RESTGetAPIGuildMembersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBERS(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async searchGuildMembers(guildId: string, options: RESTGetAPIGuildMembersSearchQuery): Promise<RESTGetAPIGuildMembersSearchResult> {\r\n\t\tif (options.limit !== undefined && (options.limit < Constants.SEARCH_MEMBERS_MIN_RESULTS || options.limit > Constants.SEARCH_MEMBERS_MAX_RESULTS)) throw new RangeError(`Limit for searching guild members has to be between ${Constants.SEARCH_MEMBERS_MIN_RESULTS} and ${Constants.SEARCH_MEMBERS_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBERS_SEARCH(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addGuildMember(guildId: string, memberId: string, data: RESTPutAPIGuildMemberJSONBody): Promise<RESTPutAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildMember(guildId: string, memberId: string, data: RESTPatchAPIGuildMemberJSONBody, reason?: string): Promise<RESTPatchAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateSelf(guildId: string, data: RESTPatchAPICurrentGuildMemberJSONBody, reason?: string): Promise<APIGuildMember> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, \"@me\"), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addGuildMemberRole(guildId: string, memberId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER_ROLE(guildId, memberId, roleId), {}, \"put\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildMemberRole(guildId: string, memberId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER_ROLE(guildId, memberId, roleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildMember(guildId: string, memberId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildBans(guildId: string, options?: RESTGetAPIGuildBansQuery): Promise<RESTGetAPIGuildBansResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BANS(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildBan(guildId: string, memberId: string): Promise<RESTGetAPIGuildBanResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildBan(guildId: string, memberId: string, data?: RESTPutAPIGuildBanJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"put\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildBan(guildId: string, memberId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildRoles(guildId: string): Promise<RESTGetAPIGuildRolesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildRole(guildId: string, data?: RESTPostAPIGuildRoleJSONBody, reason?: string): Promise<RESTPostAPIGuildRoleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildRolePositions(guildId: string, data: RESTPatchAPIGuildRolePositionsJSONBody, reason?: string): Promise<RESTPatchAPIGuildRolePositionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildRole(guildId: string, roleId: string, data: RESTPatchAPIGuildRoleJSONBody, reason?: string): Promise<RESTPatchAPIGuildRoleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLE(guildId, roleId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildRole(guildId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLE(guildId, roleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildPruneCount(guildId: string, options?: RESTGetAPIGuildPruneCountQuery): Promise<RESTGetAPIGuildPruneCountResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PRUNE(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody & { compute_prune_count: true; }, reason?: string): Promise<RESTPostAPIGuildPruneResult & { pruned: number; }>\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody & { compute_prune_count: false; }, reason?: string): Promise<RESTPostAPIGuildPruneResult & { pruned: null; }>\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody, reason?: string): Promise<RESTPostAPIGuildPruneResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PRUNE(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildVoiceRegions(guildId: string): Promise<RESTGetAPIGuildVoiceRegionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_REGIONS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildInvites(guildId: string): Promise<RESTGetAPIGuildInvitesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INVITES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildIntegrations(guildId: string): Promise<RESTGetAPIGuildIntegrationsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INTEGRATIONS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildIntegration(guildId: string, integrationId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INTEGRATION(guildId, integrationId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWidgetSettings(guildId: string): Promise<RESTGetAPIGuildWidgetSettingsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET_SETTINGS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildWidgetSettings(guildId: string, data: Partial<RESTPatchAPIGuildWidgetSettingsJSONBody>, reason?: string): Promise<RESTPatchAPIGuildWidgetSettingsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET_SETTINGS(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWidget(guildId: string): Promise<APIGuildWidget> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildVanityURL(guildId: string): Promise<RESTGetAPIGuildVanityUrlResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VANITY(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWelcomeScreen(guildId: string): Promise<RESTGetAPIGuildWelcomeScreenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WELCOME_SCREEN(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildWelcomeScreen(guildId: string, data: RESTPatchAPIGuildWelcomeScreenJSONBody, reason?: string): Promise<RESTPatchAPIGuildWelcomeScreenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WELCOME_SCREEN(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateCurrentUserVoiceState(guildId: string, data: RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_STATE_USER(guildId, \"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateUserVoiceState(guildId: string, userId: string, data: RESTPatchAPIGuildVoiceStateUserJSONBody): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_STATE_USER(guildId, userId), {}, \"patch\", \"json\", data);\r\n\t}\r\n}\r\n\r\nexport = GuildMethods;\r\n\r\n\r\n\r\n\r\n\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPIGuildScheduledEventResult,\r\n\tRESTGetAPIGuildScheduledEventUsersQuery,\r\n\tRESTGetAPIGuildScheduledEventUsersResult,\r\n\tRESTGetAPIGuildScheduledEventsResult,\r\n\tRESTPatchAPIGuildScheduledEventJSONBody,\r\n\tRESTPatchAPIGuildScheduledEventResult,\r\n\tRESTPostAPIGuildScheduledEventJSONBody,\r\n\tRESTPostAPIGuildScheduledEventResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildScheduledEventMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async listGuildScheduledEvents(guildId: string, withCounts?: boolean): Promise<RESTGetAPIGuildScheduledEventsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENTS(guildId), { with_user_count: withCounts }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildScheduledEvent(guildId: string, data: RESTPostAPIGuildScheduledEventJSONBody, reason?: string): Promise<RESTPostAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENTS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildScheduledEvent(guildId: string, eventId: string, withCounts?: boolean): Promise<RESTGetAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"get\", \"json\", { with_user_count: withCounts });\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildScheduledEvent(guildId: string, eventId: string, data: RESTPatchAPIGuildScheduledEventJSONBody, reason?: string): Promise<RESTPatchAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildScheduledEvent(guildId: string, eventId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildScheduledEventUsers(guildId: string, eventId: string, options?: RESTGetAPIGuildScheduledEventUsersQuery): Promise<RESTGetAPIGuildScheduledEventUsersResult> {\r\n\t\tif (options?.limit !== undefined && (options.limit < Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS || options.limit > Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS)) throw new RangeError(`The maximum amount of users that may be requested has to be between ${Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS} and ${Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT_USERS(guildId, eventId), options, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = GuildScheduledEventMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTDeleteAPIGuildTemplateResult,\r\n\tRESTGetAPIGuildTemplatesResult,\r\n\tRESTGetAPITemplateResult,\r\n\tRESTPatchAPIGuildTemplateJSONBody,\r\n\tRESTPatchAPIGuildTemplateResult,\r\n\tRESTPostAPIGuildTemplatesJSONBody,\r\n\tRESTPostAPIGuildTemplatesResult,\r\n\tRESTPutAPIGuildTemplateSyncResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildTemplateMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildTemplate(code: string): Promise<RESTGetAPITemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.TEMPLATE(code), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildTemplates(guildId: string): Promise<RESTGetAPIGuildTemplatesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildTemplate(guildId: string, data: RESTPostAPIGuildTemplatesJSONBody): Promise<RESTPostAPIGuildTemplatesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATES(guildId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async syncGuildTemplate(guildId: string, code: string): Promise<RESTPutAPIGuildTemplateSyncResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async modifyGuildTemplate(guildId: string, code: string, data: RESTPatchAPIGuildTemplateJSONBody): Promise<RESTPatchAPIGuildTemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildTemplate(guildId: string, code: string): Promise<RESTDeleteAPIGuildTemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = GuildTemplateMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type WHM = require(\"./Webhook\");\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport {\r\n\tInteractionResponseType,\r\n\r\n\r\n\ttype RESTGetAPIApplicationCommandPermissionsResult,\r\n\ttype RESTGetAPIApplicationCommandResult,\r\n\ttype RESTGetAPIApplicationCommandsResult,\r\n\ttype RESTGetAPIApplicationGuildCommandResult,\r\n\ttype RESTGetAPIApplicationGuildCommandsResult,\r\n\ttype RESTGetAPIInteractionFollowupResult,\r\n\ttype RESTGetAPIInteractionOriginalResponseResult,\r\n\ttype RESTPatchAPIApplicationCommandJSONBody,\r\n\ttype RESTPatchAPIApplicationCommandResult,\r\n\ttype RESTPatchAPIApplicationGuildCommandJSONBody,\r\n\ttype RESTPatchAPIApplicationGuildCommandResult,\r\n\ttype RESTPatchAPIInteractionFollowupJSONBody,\r\n\ttype RESTPatchAPIInteractionFollowupResult,\r\n\ttype RESTPatchAPIInteractionOriginalResponseJSONBody,\r\n\ttype RESTPatchAPIInteractionOriginalResponseResult,\r\n\ttype RESTPostAPIApplicationCommandsJSONBody,\r\n\ttype RESTPostAPIApplicationCommandsResult,\r\n\ttype RESTPostAPIApplicationGuildCommandsJSONBody,\r\n\ttype RESTPostAPIApplicationGuildCommandsResult,\r\n\ttype RESTPostAPIInteractionCallbackJSONBody,\r\n\ttype RESTPostAPIInteractionFollowupJSONBody,\r\n\ttype RESTPostAPIInteractionFollowupResult,\r\n\ttype RESTPutAPIApplicationCommandPermissionsJSONBody,\r\n\ttype RESTPutAPIApplicationCommandPermissionsResult,\r\n\ttype RESTPutAPIApplicationCommandsJSONBody,\r\n\ttype RESTPutAPIApplicationCommandsResult,\r\n\ttype RESTPutAPIApplicationGuildCommandsJSONBody,\r\n\ttype RESTPutAPIApplicationGuildCommandsResult\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass InteractionMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public readonly webhooks: WHM, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationCommands(appId: string, withLocalizations?: boolean): Promise<RESTGetAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), { with_localizations: withLocalizations }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createApplicationCommand(appId: string, data: RESTPostAPIApplicationCommandsJSONBody): Promise<RESTPostAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationCommand(appId: string, cmdId: string): Promise<RESTGetAPIApplicationCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editApplicationCommand(appId: string, cmdId: string, data: RESTPatchAPIApplicationCommandJSONBody): Promise<RESTPatchAPIApplicationCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteApplicationCommand(appId: string, cmdId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkOverwriteApplicationCommands(appId: string, data: RESTPutAPIApplicationCommandsJSONBody): Promise<RESTPutAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommands(appId: string, guildId: string, withLocalizations?: boolean): Promise<RESTGetAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), { with_localizations: withLocalizations }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildApplicationCommand(appId: string, guildId: string, data: RESTPostAPIApplicationGuildCommandsJSONBody): Promise<RESTPostAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommand(appId: string, guildId: string, cmdId: string): Promise<RESTGetAPIApplicationGuildCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildApplicationCommand(appId: string, guildId: string, cmdId: string, data: RESTPatchAPIApplicationGuildCommandJSONBody): Promise<RESTPatchAPIApplicationGuildCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildApplicationCommand(appId: string, guildId: string, cmdId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkOverwriteGuildApplicationCommands(appId: string, guildId: string, data: RESTPutAPIApplicationGuildCommandsJSONBody): Promise<RESTPutAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string): Promise<Array<RESTGetAPIApplicationCommandPermissionsResult>>;\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId: string): Promise<RESTGetAPIApplicationCommandPermissionsResult>;\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId?: string): Promise<Array<RESTGetAPIApplicationCommandPermissionsResult> | RESTGetAPIApplicationCommandPermissionsResult> {\r\n\t\tif (cmdId) return this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId, guildId, cmdId), {}, \"get\", \"json\");\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS_PERMISSIONS(appId, guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId: string, permissions: RESTPutAPIApplicationCommandPermissionsJSONBody[\"permissions\"]): Promise<RESTPutAPIApplicationCommandPermissionsResult> {\r\n\t\tconst payload = { permissions: permissions };\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId, guildId, cmdId), {}, \"put\", \"json\", payload);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createInteractionResponse(interactionId: string, token: string, data: RESTPostAPIInteractionCallbackJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<void> {\r\n\t\tif ((\r\n\t\t\tdata.type === InteractionResponseType.ChannelMessageWithSource ||\r\n\t\t\tdata.type === InteractionResponseType.UpdateMessage\r\n\t\t) && data.data) data.data.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.INTERACTION_CALLBACK(interactionId, token), {}, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.INTERACTION_CALLBACK(interactionId, token), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getOriginalInteractionResponse(appId: string, token: string): Promise<RESTGetAPIInteractionOriginalResponseResult> {\r\n\t\treturn this.webhooks.getWebhookMessage(appId, token, \"@original\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editOriginalInteractionResponse(appId: string, token: string, data: RESTPatchAPIInteractionOriginalResponseJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream }> }): Promise<RESTPatchAPIInteractionOriginalResponseResult> {\r\n\t\treturn this.webhooks.editWebhookMessage(appId, token, \"@original\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteOriginalInteractionResponse(appId: string, token: string): Promise<void> {\r\n\t\treturn this.webhooks.deleteWebhookMessage(appId, token, \"@original\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createFollowupMessage(appId: string, token: string, data: RESTPostAPIInteractionFollowupJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPostAPIInteractionFollowupResult> {\r\n\r\n\t\treturn this.webhooks.executeWebhook(appId, token, data) as unknown as Promise<RESTPostAPIInteractionFollowupResult>;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getFollowupMessage(appId: string, token: string, messageId: string): Promise<RESTGetAPIInteractionFollowupResult> {\r\n\t\treturn this.webhooks.getWebhookMessage(appId, token, messageId);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editFollowupMessage(appId: string, token: string, messageId: string, data: RESTPatchAPIInteractionFollowupJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIInteractionFollowupResult> {\r\n\t\treturn this.webhooks.editWebhookMessage(appId, token, messageId, data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteFollowupMessage(appId: string, token: string, messageId: string): Promise<void> {\r\n\t\treturn this.webhooks.deleteWebhookMessage(appId, token, messageId);\r\n\t}\r\n}\r\n\r\nexport = InteractionMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTDeleteAPIInviteResult,\r\n\tRESTGetAPIInviteQuery,\r\n\tRESTGetAPIInviteResult\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type {\r\n\tRESTGetAPIInviteTargetUsers,\r\n\tRESTGetAPIInviteTargetUsersJobStatus,\r\n\r\n} from \"../Types\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass InviteMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInvite(inviteId: string, options?: RESTGetAPIInviteQuery): Promise<RESTGetAPIInviteResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITES(inviteId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteInvite(inviteId: string, reason?: string): Promise<RESTDeleteAPIInviteResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITES(inviteId), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInviteTargetUsers(inviteId: string): Promise<RESTGetAPIInviteTargetUsers> {\r\n\t\tconst response = await this.requestHandler.request(Endpoints.INVITE_TARGET_USERS(inviteId), {}, \"get\", \"json\", undefined, undefined, this.requestHandler.options.retryLimit, true) as Response;\r\n\t\tlet b: string\r\n\t\ttry {\r\n\t\t\tb = await response.text();\r\n\t\t} catch {\r\n\t\t\tb = \"\"\r\n\t\t}\r\n\t\tif (!b.length) return [];\r\n\t\treturn b.split(\"\\n\").slice(1).map(l => l.replace(\",\", \"\").trim());\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateInviteTargetUsers(inviteId: string, userIds: Array<string>): Promise<void> {\r\n\t\tconst csv = `Users\\n${userIds.join(\",\\n\")},`;\r\n\t\tconst form = new FormData();\r\n\t\tawait Constants.standardAddToFormHandler(form, \"target_users_file\", csv, \"target_users_file.csv\");\r\n\t\treturn this.requestHandler.request(Endpoints.INVITE_TARGET_USERS(inviteId), { target_users_file: \"target_users_file.csv\" }, \"put\", \"multipart\", form);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInviteTargetUsersJobStatus(inviteId: string): Promise<RESTGetAPIInviteTargetUsersJobStatus> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITE_TARGET_USERS_JOB_STATUS(inviteId), {}, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = InviteMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type {\r\n\tRESTGetAPISKUsResult,\r\n\tRESTGetAPISKUSubscriptionsQuery,\r\n\tRESTGetAPISKUSubscriptionsResult,\r\n\tRESTGetAPISKUSubscriptionResult,\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SkuMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async GetSkus(appId: string): Promise<RESTGetAPISKUsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_SKUS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSubscriptions(skuId: string, options: RESTGetAPISKUSubscriptionsQuery = {}): Promise<RESTGetAPISKUSubscriptionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.SKU_SUBSCRIPTIONS(skuId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSubscription(skuId: string, subscriptionId: string): Promise<RESTGetAPISKUSubscriptionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.SKU_SUBSCRIPTION(skuId, subscriptionId), {}, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = SkuMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPIStageInstanceResult,\r\n\tRESTPatchAPIStageInstanceJSONBody,\r\n\tRESTPatchAPIStageInstanceResult,\r\n\tRESTPostAPIStageInstanceJSONBody,\r\n\tRESTPostAPIStageInstanceResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass StageInstanceMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createStageInstance(data: RESTPostAPIStageInstanceJSONBody, reason?: string): Promise<RESTPostAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCES, {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getStageInstance(channelId: string): Promise<RESTGetAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editStageInstance(channelId: string, data: RESTPatchAPIStageInstanceJSONBody, reason?: string): Promise<RESTPatchAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteStageInstance(channelId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n}\r\n\r\nexport = StageInstanceMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPICurrentUserApplicationRoleConnectionResult,\r\n\tRESTGetAPICurrentUserConnectionsResult,\r\n\tRESTGetAPICurrentUserGuildsQuery,\r\n\tRESTGetAPICurrentUserGuildsResult,\r\n\tRESTGetAPICurrentUserResult,\r\n\tRESTGetAPIUserResult,\r\n\tRESTPatchAPICurrentUserJSONBody,\r\n\tRESTPatchAPICurrentUserResult,\r\n\tRESTPostAPICurrentUserCreateDMChannelResult,\r\n\tRESTPutAPICurrentUserApplicationRoleConnectionJSONBody,\r\n\tRESTPutAPICurrentUserApplicationRoleConnectionResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass UserMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSelf(): Promise<RESTGetAPICurrentUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getUser(userId: string): Promise<RESTGetAPIUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(userId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateSelf(data: RESTPatchAPICurrentUserJSONBody): Promise<RESTPatchAPICurrentUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(\"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuilds(options?: RESTGetAPICurrentUserGuildsQuery): Promise<RESTGetAPICurrentUserGuildsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILDS(\"@me\"), {}, \"get\", \"json\", options);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async leaveGuild(guildId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD(\"@me\", guildId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createDirectMessageChannel(userId: string): Promise<RESTPostAPICurrentUserCreateDMChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CHANNELS(\"@me\"), {}, \"post\", \"json\", { recipient_id: userId });\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGroupDirectMessageChannel(data: { access_tokens: Array<string>; nicks?: { [userId: string]: string } }): Promise<RESTPostAPICurrentUserCreateDMChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CHANNELS(\"@me\"), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getConnections(): Promise<RESTGetAPICurrentUserConnectionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CONNECTIONS(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationRoleConnection(appId: string): Promise<RESTGetAPICurrentUserApplicationRoleConnectionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_APPLICATION_ROLE_CONNECTION(\"@me\", appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateApplicationRoleConnection(appId: string, data: RESTPutAPICurrentUserApplicationRoleConnectionJSONBody): Promise<RESTPutAPICurrentUserApplicationRoleConnectionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_APPLICATION_ROLE_CONNECTION(\"@me\", appId), {}, \"put\", \"json\", data);\r\n\t}\r\n}\r\n\r\nexport = UserMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type { RESTGetAPIVoiceRegionsResult, APIVoiceState } from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass VoiceMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getVoiceRegions(): Promise<RESTGetAPIVoiceRegionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.VOICE_REGIONS, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getCurrentUserVoiceState(guildId: string): Promise<APIVoiceState> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD_VOICE_STATE(guildId, \"@me\"), {}, \"get\", \"json\")\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getUserVoiceState(guildId: string, userId: string): Promise<APIVoiceState> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD_VOICE_STATE(guildId, userId), {}, \"get\", \"json\")\r\n\t}\r\n}\r\n\r\nexport = VoiceMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport {\r\n\r\n\r\n\ttype RESTGetAPIChannelWebhooksResult,\r\n\ttype RESTGetAPIGuildWebhooksResult,\r\n\ttype RESTGetAPIWebhookResult,\r\n\ttype RESTGetAPIWebhookWithTokenMessageResult,\r\n\ttype RESTPatchAPIWebhookJSONBody,\r\n\ttype RESTPatchAPIWebhookResult,\r\n\ttype RESTPatchAPIWebhookWithTokenJSONBody,\r\n\ttype RESTPatchAPIWebhookWithTokenMessageJSONBody,\r\n\ttype RESTPatchAPIWebhookWithTokenMessageResult,\r\n\ttype RESTPatchAPIWebhookWithTokenResult,\r\n\ttype RESTPostAPIChannelWebhookJSONBody,\r\n\ttype RESTPostAPIChannelWebhookResult,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubQuery,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubResult,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubWaitResult,\r\n\ttype RESTPostAPIWebhookWithTokenJSONBody,\r\n\ttype RESTPostAPIWebhookWithTokenQuery,\r\n\ttype RESTPostAPIWebhookWithTokenResult,\r\n\ttype RESTPostAPIWebhookWithTokenSlackQuery,\r\n\ttype RESTPostAPIWebhookWithTokenSlackResult,\r\n\ttype RESTPostAPIWebhookWithTokenSlackWaitResult,\r\n\ttype RESTPostAPIWebhookWithTokenWaitResult,\r\n\r\n\tMessageFlags\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass WebhookMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createWebhook(channelId: string, data: RESTPostAPIChannelWebhookJSONBody, reason?: string): Promise<RESTPostAPIChannelWebhookResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_WEBHOOKS(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelWebhooks(channelId: string): Promise<RESTGetAPIChannelWebhooksResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_WEBHOOKS(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWebhooks(guildId: string): Promise<RESTGetAPIGuildWebhooksResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WEBHOOKS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getWebhook(webhookId: string, token?: string): Promise<RESTGetAPIWebhookResult> {\r\n\t\tif (token) return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"get\", \"json\");\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateWebhook(webhookId: string, data: RESTPatchAPIWebhookJSONBody, reason?: string): Promise<RESTPatchAPIWebhookResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateWebhookToken(webhookId: string, token: string, data: RESTPatchAPIWebhookWithTokenJSONBody, reason?: string): Promise<RESTPatchAPIWebhookWithTokenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhook(webhookId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhookToken(webhookId: string, token: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options?: RESTPostAPIWebhookWithTokenQuery & { wait?: false, disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenResult>;\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options: RESTPostAPIWebhookWithTokenQuery & { wait: true, disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenWaitResult>;\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options?: RESTPostAPIWebhookWithTokenQuery & { disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenResult | RESTPostAPIWebhookWithTokenWaitResult> {\r\n\t\tif (typeof data !== \"string\" && !data.content && !data.embeds && !data.components && !data.files && !data.poll) throw new Error(\"Missing content, embeds, components, files, or poll\");\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\t\tconst hasComponentsV2 = (!!data.flags && (data.flags & MessageFlags.IsComponentsV2) === MessageFlags.IsComponentsV2)\r\n\r\n\t\tif ((data.content || data.embeds) && data.flags && (hasComponentsV2)) throw new Error(\"The message flags was set to include IsComponentsV2, but content and/or embeds were also present. You can either have content/embeds or components v2, not both.\");\r\n\r\n\r\n\t\tif (options) delete options.disableEveryone;\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(`${Endpoints.WEBHOOK_TOKEN(webhookId, token)}`, options, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery & { wait?: false }): Promise<RESTPostAPIWebhookWithTokenSlackResult>\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery & { wait: true }): Promise<RESTPostAPIWebhookWithTokenSlackWaitResult>\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery): Promise<RESTPostAPIWebhookWithTokenSlackResult | RESTPostAPIWebhookWithTokenSlackWaitResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_SLACK(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenGitHubQuery & { wait?: false }): Promise<RESTPostAPIWebhookWithTokenGitHubResult>\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenGitHubQuery & { wait: true }): Promise<RESTPostAPIWebhookWithTokenGitHubWaitResult>\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options: RESTPostAPIWebhookWithTokenGitHubQuery = {}): Promise<RESTPostAPIWebhookWithTokenGitHubResult | RESTPostAPIWebhookWithTokenGitHubWaitResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_GITHUB(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getWebhookMessage(webhookId: string, token: string, messageId: string, threadId?: string): Promise<RESTGetAPIWebhookWithTokenMessageResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editWebhookMessage(webhookId: string, token: string, messageId: string, data: RESTPatchAPIWebhookWithTokenMessageJSONBody & { thread_id?: string; files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIWebhookWithTokenMessageResult> {\r\n\t\tlet threadId: string | undefined = undefined;\r\n\t\tif (data.thread_id) threadId = data.thread_id;\r\n\t\tdelete data.thread_id;\r\n\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"patch\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhookMessage(webhookId: string, token: string, messageId: string, threadId?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = WebhookMethods;\r\n","import type { RESTPostOAuth2AccessTokenResult } from \"discord-api-types/v10\";\r\n\r\nimport Endpoints = require(\"./Endpoints\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nasync function getOauth2Token(clientId: string, redirectURI: string, clientSecret: string, code: string): Promise<RESTPostOAuth2AccessTokenResult> {\r\n\tconst response = await fetch(`${Endpoints.BASE_HOST}${Endpoints.OAUTH2_TOKEN}`, {\r\n\t\tmethod: \"POST\",\r\n\t\tbody: new URLSearchParams({\r\n\t\t\tgrant_type: \"authorization_code\",\r\n\t\t\tcode,\r\n\t\t\tclient_id: clientId,\r\n\t\t\tclient_secret: clientSecret,\r\n\t\t\tredirect_uri: redirectURI\r\n\t\t})\r\n\t});\r\n\treturn response.json() as Promise<RESTPostOAuth2AccessTokenResult>;\r\n}\r\n\r\nexport = {\r\n\tgetOauth2Token\r\n}\r\n","import { Ratelimiter, RequestHandler } from \"./RequestHandler\";\r\nimport AssetsMethods = require(\"./methods/Assets\");\r\nimport AuditLogMethods = require(\"./methods/AuditLog\");\r\nimport AutoModerationMethods = require(\"./methods/AutoModeration\");\r\nimport BotMethods = require(\"./methods/Bot\");\r\nimport ChannelMethods = require(\"./methods/Channel\");\r\nimport EntitlementMethods = require(\"./methods/Entitlements\");\r\nimport GuildMethods = require(\"./methods/Guild\");\r\nimport GuildScheduledEventMethods = require(\"./methods/GuildScheduledEvent\");\r\nimport GuildTemplateMethods = require(\"./methods/GuildTemplate\");\r\nimport InteractionMethods = require(\"./methods/Interaction\");\r\nimport InviteMethods = require(\"./methods/Invite\");\r\nimport SkuMethods = require(\"./methods/Sku\");\r\nimport StageInstanceMethods = require(\"./methods/StageInstance\");\r\nimport UserMethods = require(\"./methods/User\");\r\nimport VoiceMethods = require(\"./methods/Voice\");\r\nimport WebhookMethods = require(\"./methods/Webhook\");\r\nimport Endpoints = require(\"./Endpoints\");\r\nimport Constants = require(\"./Constants\");\r\n\r\nimport type { APIAllowedMentions } from 'discord-api-types/v10';\r\n\r\nnamespace SnowTransfer {\r\n\texport type Options = {\r\n\r\n\t\tbaseHost: string;\r\n\r\n\t\tallowed_mentions: APIAllowedMentions | undefined;\r\n\r\n\t\tbypassBuckets: boolean;\r\n\r\n\t\tretryRequests: boolean;\r\n\r\n\t\tretryLimit: number;\r\n\t};\r\n}\r\n\r\n\r\n\r\n\r\n\r\nclass SnowTransfer {\r\n\r\n\tpublic options: SnowTransfer.Options;\r\n\r\n\tpublic token: string | undefined;\r\n\r\n\tpublic readonly channel: ChannelMethods;\r\n\r\n\tpublic readonly requestHandler: RequestHandler;\r\n\r\n\tpublic readonly user: UserMethods;\r\n\r\n\tpublic readonly assets: AssetsMethods;\r\n\r\n\tpublic readonly webhook: WebhookMethods;\r\n\r\n\tpublic readonly guild: GuildMethods;\r\n\r\n\tpublic readonly guildScheduledEvent: GuildScheduledEventMethods;\r\n\r\n\tpublic readonly guildTemplate: GuildTemplateMethods;\r\n\r\n\tpublic readonly interaction: InteractionMethods;\r\n\r\n\tpublic readonly invite: InviteMethods;\r\n\r\n\tpublic readonly voice: VoiceMethods;\r\n\r\n\tpublic readonly bot: BotMethods;\r\n\r\n\tpublic readonly auditLog: AuditLogMethods;\r\n\r\n\tpublic readonly stageInstance: StageInstanceMethods;\r\n\r\n\tpublic readonly autoMod: AutoModerationMethods;\r\n\r\n\tpublic readonly entitlement: EntitlementMethods;\r\n\r\n\tpublic readonly sku: SkuMethods;\r\n\r\n\tpublic readonly ratelimiter: Ratelimiter;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(token?: string, options?: Partial<SnowTransfer.Options>) {\r\n\t\tif (typeof token === \"string\" && token === \"\") throw new Error(\"Missing token\");\r\n\t\tif (token && (!token.startsWith(\"Bot\") && !token.startsWith(\"Bearer\"))) token = `Bot ${token}`;\r\n\t\tthis.options = { baseHost: Endpoints.BASE_HOST, allowed_mentions: undefined, bypassBuckets: false, retryRequests: false, retryLimit: Constants.DEFAULT_RETRY_LIMIT, ...options };\r\n\t\tthis.token = token;\r\n\t\tthis.ratelimiter = new Ratelimiter();\r\n\t\tthis.requestHandler = new RequestHandler(this.ratelimiter, {\r\n\t\t\ttoken: this.token,\r\n\t\t\tbaseHost: this.options.baseHost,\r\n\t\t\tbypassBuckets: this.options.bypassBuckets,\r\n\t\t\tretryFailed: this.options.retryRequests,\r\n\t\t\tretryLimit: this.options.retryLimit\r\n\t\t});\r\n\t\tthis.channel = new ChannelMethods(this.requestHandler, this.options);\r\n\t\tthis.user = new UserMethods(this.requestHandler);\r\n\t\tthis.assets = new AssetsMethods(this.requestHandler);\r\n\t\tthis.webhook = new WebhookMethods(this.requestHandler, this.options);\r\n\t\tthis.guild = new GuildMethods(this.requestHandler);\r\n\t\tthis.guildScheduledEvent = new GuildScheduledEventMethods(this.requestHandler);\r\n\t\tthis.guildTemplate = new GuildTemplateMethods(this.requestHandler);\r\n\t\tthis.interaction = new InteractionMethods(this.requestHandler, this.webhook, this.options);\r\n\t\tthis.invite = new InviteMethods(this.requestHandler);\r\n\t\tthis.voice = new VoiceMethods(this.requestHandler);\r\n\t\tthis.bot = new BotMethods(this.requestHandler);\r\n\t\tthis.auditLog = new AuditLogMethods(this.requestHandler);\r\n\t\tthis.stageInstance = new StageInstanceMethods(this.requestHandler);\r\n\t\tthis.autoMod = new AutoModerationMethods(this.requestHandler);\r\n\t\tthis.entitlement = new EntitlementMethods(this.requestHandler);\r\n\t\tthis.sku = new SkuMethods(this.requestHandler);\r\n\t}\r\n}\r\n\r\nexport = SnowTransfer;\r\n","import SM = require(\"./StateMachine\");\r\n\r\nfunction graph(stateMachine: SM) {\r\n\tstateMachine.guardNotEditable();\r\n\tlet output = \"digraph {\\n\";\r\n\toutput += \"rankdir=LR\\n\";\r\n\toutput += `${stateMachine.currentStateName}\\n`;\r\n\tfor (const [stateName, state] of stateMachine.states.entries()) {\r\n\t\tif (state.onEnter.length) {\r\n\t\t\toutput += `${stateName} [fontcolor=blue]\\n`;\r\n\t\t}\r\n\r\n\t\tfor (const [transitionName, transition] of state.transitions.entries()) {\r\n\t\t\toutput += `${stateName} -> ${transition.destination}`;\r\n\t\t\tconst attrs = [`label=\"${transitionName}\"`];\r\n\t\t\tif (transition.onTransition?.length) attrs.push(\"color=blue\", \"fontcolor=blue\");\r\n\t\t\toutput += `[${attrs.join(\" \")}]\\n`;\r\n\t\t}\r\n\t}\r\n\toutput += \"}\";\r\n\treturn output;\r\n}\r\n\r\nexport { graph };\r\n","import AuditLogMethods2 = require(\"./methods/AuditLog\");\r\nimport AutoModerationMethods2 = require(\"./methods/AutoModeration\");\r\nimport BotMethods2 = require(\"./methods/Bot\");\r\nimport ChannelMethods2 = require(\"./methods/Channel\");\r\nimport AssetsMethods2 = require(\"./methods/Assets\");\r\nimport EntitlementsMethods2 = require(\"./methods/Entitlements\");\r\nimport GuildMethods2 = require(\"./methods/Guild\");\r\nimport GuildScheduledEventMethods2 = require(\"./methods/GuildScheduledEvent\");\r\nimport GuildTemplateMethods2 = require(\"./methods/GuildTemplate\");\r\nimport InteractionMethods2 = require(\"./methods/Interaction\");\r\nimport InviteMethods2 = require(\"./methods/Invite\");\r\nimport SkuMethods2 = require(\"./methods/Sku\");\r\nimport StageInstanceMethods2 = require(\"./methods/StageInstance\");\r\nimport UserMethods2 = require(\"./methods/User\");\r\nimport VoiceMethods2 = require(\"./methods/Voice\");\r\nimport WebhookMethods2 = require(\"./methods/Webhook\");\r\n\r\nimport tokenless2 = require(\"./tokenless\");\r\n\r\nimport Constants2 = require(\"./Constants\");\r\nimport Endpoints2 = require(\"./Endpoints\");\r\nimport SnowTransfer2 = require(\"./SnowTransfer\");\r\nimport StateMachine2 = require(\"./StateMachine\");\r\nimport { graph } from \"./StateMachineGraph\";\r\nconst graphWrapped = { graph };\r\n\r\nexport * from \"./Types\";\r\nexport * from \"./RequestHandler\";\r\n\r\nexport {\r\n\tAuditLogMethods2 as AuditLogMethods,\r\n\tAutoModerationMethods2 as AutoModerationMethods,\r\n\tBotMethods2 as BotMethods,\r\n\tChannelMethods2 as ChannelMethods,\r\n\tAssetsMethods2 as AssetsMethods,\r\n\tEntitlementsMethods2 as EntitlementsMethods,\r\n\tGuildMethods2 as GuildMethods,\r\n\tGuildScheduledEventMethods2 as GuildScheduledEventMethods,\r\n\tGuildTemplateMethods2 as GuildTemplateMethods,\r\n\tInteractionMethods2 as InteractionMethods,\r\n\tInviteMethods2 as InviteMethods,\r\n\tSkuMethods2 as SkuMethods,\r\n\tStageInstanceMethods2 as StageInstanceMethods,\r\n\tUserMethods2 as UserMethods,\r\n\tVoiceMethods2 as VoiceMethods,\r\n\tWebhookMethods2 as WebhookMethods,\r\n\r\n\ttokenless2 as tokenless,\r\n\r\n\tConstants2 as Constants,\r\n\tEndpoints2 as Endpoints,\r\n\tSnowTransfer2 as SnowTransfer,\r\n\tStateMachine2 as StateMachine,\r\n\tgraphWrapped as StateMachineGraph\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/StateMachine.ts","../src/Constants.ts","../src/Endpoints.ts","../src/RequestHandler.ts","../src/methods/AuditLog.ts","../src/methods/AutoModeration.ts","../src/methods/Bot.ts","../src/methods/Channel.ts","../src/methods/Assets.ts","../src/methods/Entitlements.ts","../src/methods/Guild.ts","../src/methods/GuildScheduledEvent.ts","../src/methods/GuildTemplate.ts","../src/methods/Interaction.ts","../src/methods/Invite.ts","../src/methods/Sku.ts","../src/methods/StageInstance.ts","../src/methods/User.ts","../src/methods/Voice.ts","../src/methods/Webhook.ts","../src/tokenless.ts","../src/SnowTransfer.ts","../src/StateMachineGraph.ts","../src/index.ts"],"names":["exports","EventEmitter","Constants","Blob","File","Readable","ReadableStream","Endpoints","SM","DiscordAPIError","IntervalCounter","LeakyCounter","Bucket","Ratelimiter","RequestHandler","MessageReferenceType","MessageFlags","InteractionResponseType"],"mappings":"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","file":"index.js","sourcesContent":["import EventEmitter = require(\"events\");\r\n\r\nimport type { SMHistory, SMState, SMTransition } from \"./Types\";\r\n\r\ninterface StateMachineEvents {\r\n\tenter: [string];\r\n}\r\n\r\n\r\n\r\n\r\n\r\nclass StateMachine extends EventEmitter<StateMachineEvents> {\r\n\tpublic readonly states = new Map<string, SMState>();\r\n\tprivate editable = true;\r\n\tprivate readonly deferredTransitionCreators: Array<() => unknown> = [];\r\n\tprivate readonly history: Array<SMHistory> = [];\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public currentStateName: string) {\r\n\t\tsuper();\r\n\t\tthis.deferredTransitionCreators.push(() => {\r\n\t\t\tif (!this.states.has(currentStateName)) {\r\n\t\t\t\tthis.defineState(currentStateName);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic guardEditable() {\r\n\t\tif (!this.editable) throw new Error(\"tried to edit state machine after machine has been frozen\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic guardNotEditable() {\r\n\t\tif (this.editable) throw new Error(\"tried to do transition before machine has been frozen\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineState(name: string, cbs: { onEnter: SMState[\"onEnter\"], onLeave: SMState[\"onLeave\"], transitions: Map<string, SMTransition> } = { onEnter: [], onLeave: [], transitions: new Map() }): this {\r\n\t\tthis.guardEditable();\r\n\t\tif (this.states.has(name)) throw new Error(`attempt to redefine state ${name}, please edit it instead`);\r\n\t\tthis.states.set(name, {\r\n\t\t\tonEnter: cbs.onEnter,\r\n\t\t\tonLeave: cbs.onLeave,\r\n\t\t\ttransitions: cbs.transitions\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineTransition(from: string, event: string, to: string, cb?: (...args: any[]) => unknown): this {\r\n\t\tthis.guardEditable();\r\n\t\tconst state = this.states.get(from)!;\r\n\t\tif (state.transitions.has(event)) throw new Error(`attempt to redefine transition ${from} --${event}--> *, please only create transitions once`);\r\n\t\tconst onTransition: SMTransition[\"onTransition\"] = [];\r\n\t\tif (cb) onTransition.push(cb);\r\n\t\tstate.transitions.set(event, { destination: to, onTransition });\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic defineUniversalTransition(event: string, to: string, cb?: (...args: any[]) => unknown): this {\r\n\t\tthis.guardEditable();\r\n\t\tthis.deferredTransitionCreators.push(() => {\r\n\t\t\tfor (const [stateName, state] of this.states.entries()) {\r\n\t\t\t\tif (!state.transitions.has(event)) {\r\n\t\t\t\t\tthis.defineTransition(stateName, event, to, cb);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn this;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic freeze() {\r\n\t\tthis.guardEditable();\r\n\r\n\r\n\t\tfor (const cb of this.deferredTransitionCreators) {\r\n\t\t\tcb();\r\n\t\t}\r\n\r\n\r\n\t\tconst problems: Array<string> = [];\r\n\t\tfor (const [stateName, state] of this.states.entries()) {\r\n\t\t\tfor (const [transitionName, transition] of state.transitions.entries()) {\r\n\t\t\t\tif (!this.states.has(transition.destination)) {\r\n\t\t\t\t\tproblems.push(`transition ${stateName} --${transitionName}--> ${transition.destination} has an invalid destination`);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (problems.length) {\r\n\t\t\tthrow new Error(`Consistency problems in state machine: ${problems.join(\";\")}`);\r\n\t\t}\r\n\r\n\t\tthis.editable = false;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic doTransition(event: string, ...args: any[]): void {\r\n\t\tthis.guardNotEditable();\r\n\t\tconst from = this.currentStateName;\r\n\t\tconst currentState = this.states.get(this.currentStateName)!;\r\n\t\tconst transition = currentState.transitions.get(event);\r\n\t\tif (!transition) throw new Error(`undefined transition: ${this.currentStateName} -> ${event} -> ?`);\r\n\r\n\t\tthis.history.push({ from, event, to: transition.destination, time: Date.now() });\r\n\t\tif (this.history.length > 20) this.history.shift();\r\n\r\n\r\n\t\tfor (const cb of this.states.get(this.currentStateName)!.onLeave) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(event);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onLeave callback for state ${from} (during transition ${from} --${event}--> ${transition.destination})`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tthis.currentStateName = transition.destination;\r\n\t\tfor (const cb of transition.onTransition ?? []) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(...args);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onTransition callback during ${from} --${event}--> ${transition.destination}`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tthis.emit(\"enter\", this.currentStateName);\r\n\t\tfor (const cb of this.states.get(this.currentStateName)!.onEnter) {\r\n\t\t\ttry {\r\n\t\t\t\tcb(event);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tthis.debug();\r\n\t\t\t\tthrow new Error(`onEnter callback for state ${from} (during transition ${this.currentStateName} --${event}--> ${transition.destination})`, {cause: e});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic doTransitionLater(event: string, delayMs: number, ...args: Array<any>): void {\r\n\t\tthis.guardNotEditable();\r\n\t\tconst timer = setTimeout(() => {\r\n\t\t\tthis.doTransition(event, ...args);\r\n\t\t}, delayMs);\r\n\t\tthis.once(\"enter\", () => {\r\n\t\t\tclearTimeout(timer);\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic debug(): void {\r\n\t\tconsole.table(this.history.map(h => ({\r\n\t\t\t\"At\": new Date(h.time),\r\n\t\t\t\"From -->\": h.from,\r\n\t\t\t\"-- Event -->\": h.event,\r\n\t\t\t\"--> To\": h.to\r\n\t\t})).concat({\r\n\t\t\t\"At\": new Date(),\r\n\t\t\t\"From -->\": this.currentStateName,\r\n\t\t\t\"-- Event -->\": \"(debug)\",\r\n\t\t\t\"--> To\": \"\"\r\n\t\t}));\r\n\t}\r\n}\r\n\r\n\r\nexport = StateMachine;\r\n","import { Blob, File } from \"buffer\";\r\nimport { Readable } from \"stream\";\r\nimport { ReadableStream } from \"stream/web\";\r\n\r\nconst Constants = {\r\n\tREST_API_VERSION: 10 as const,\r\n\tGET_CHANNEL_MESSAGES_MIN_RESULTS: 1 as const,\r\n\tGET_CHANNEL_MESSAGES_MAX_RESULTS: 100 as const,\r\n\tGET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS: 1 as const,\r\n\tGET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS: 100 as const,\r\n\tSEARCH_MEMBERS_MIN_RESULTS: 1 as const,\r\n\tSEARCH_MEMBERS_MAX_RESULTS: 1000 as const,\r\n\tBULK_DELETE_MESSAGES_MIN: 2 as const,\r\n\tBULK_DELETE_MESSAGES_MAX: 100 as const,\r\n\tOK_STATUS_CODES: new Set([200, 201, 204, 304]),\r\n\tDO_NOT_RETRY_STATUS_CODES: new Set([401, 403, 404, 405, 411, 413]),\r\n\tDEFAULT_RETRY_LIMIT: 3,\r\n\tGLOBAL_REQUESTS_PER_SECOND: 50,\r\n\tasync standardMultipartHandler(data: { files: Array<{ name: string; file: Buffer | Blob | File | Readable | ReadableStream }>; data?: any; }): Promise<FormData> {\r\n\t\tconst form = new FormData();\r\n\r\n\t\tif (data.files && Array.isArray(data.files) && data.files.every(f => !!f.name && !!f.file)) {\r\n\t\t\tlet index = 0;\r\n\t\t\tfor (const file of data.files) {\r\n\t\t\t\tawait Constants.standardAddToFormHandler(form, `files[${index}]`, file.file, file.name);\r\n\r\n\r\n\t\t\t\tdelete file.file;\r\n\t\t\t\tindex++;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tif (data.data) delete data.files;\r\n\t\tform.append(\"payload_json\", JSON.stringify(data));\r\n\t\treturn form;\r\n\t},\r\n\tasync standardAddToFormHandler(form: FormData, name: string, value: string | Buffer | Blob | File | Readable | ReadableStream, filename?: string): Promise<void> {\r\n\r\n\t\tif (value instanceof Buffer || typeof value === \"string\") form.append(name, new Blob([value]), filename);\r\n\t\telse if (value instanceof Blob || value instanceof File) form.append(name, value, filename);\r\n\t\telse if (value instanceof Readable || value instanceof ReadableStream) {\r\n\t\t\tconst blob = await new Response(value instanceof ReadableStream ? value : Readable.toWeb(value)).blob();\r\n\t\t\tform.set(name, blob, filename);\r\n\t\t} else throw new Error(`Don't know how to add ${value?.constructor?.name ?? typeof value} to form`);\r\n\t},\r\n\treasonHeader(reason?: string): { \"X-Audit-Log-Reason\"?: string } { return reason ? { \"X-Audit-Log-Reason\": reason } : {}; }\r\n};\r\n\r\nexport = Constants;\r\n","\"use strict\";\r\n\r\nimport Constants = require(\"./Constants\");\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst Endpoints = {\r\n\tBASE_URL: \"/api/v\" + Constants.REST_API_VERSION as `/api/v${typeof Constants.REST_API_VERSION}`,\r\n\tBASE_HOST: \"https:\r\n\tCDN_URL: \"https:\r\n\r\n\tAPPLICATION_COMMAND: (appId: string, cmdId: string) => `${Endpoints.APPLICATION_COMMANDS(appId)}/${cmdId}` as `${ReturnType<typeof Endpoints.APPLICATION_COMMANDS>}/{cmd_id}`,\r\n\tAPPLICATION_COMMANDS: (appId: string) => `/applications/${appId}/commands` as \"/applications/{app_id}/commands\",\r\n\tAPPLICATION_EMOJI: (appId: string, emojiId: string) => `${Endpoints.APPLICATION_EMOJIS(appId)}/${emojiId}` as `${ReturnType<typeof Endpoints.APPLICATION_EMOJIS>}/{emoji_id}`,\r\n\tAPPLICATION_EMOJIS: (appId: string) => `/applications/${appId}/emojis` as \"/applications/{app_id}/emojis\",\r\n\tAPPLICATION_ENTITLEMENT: (appId: string, entitlementId: string) => `${Endpoints.APPLICATION_ENTITLEMENTS(appId)}/${entitlementId}` as `${ReturnType<typeof Endpoints.APPLICATION_ENTITLEMENTS>}/{entitlement_id}`,\r\n\tAPPLICATION_ENTITLEMENT_CONSUME: (appId: string, entitlementId: string) => `${Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId)}/consume` as `${ReturnType<typeof Endpoints.APPLICATION_ENTITLEMENT>}/consume`,\r\n\tAPPLICATION_ENTITLEMENTS: (appId: string) => `/applications/${appId}/entitlements` as \"/applications/{app_id}/entitlements\",\r\n\tAPPLICATION_GUILD_COMMANDS_PERMISSIONS: (appId: string, guildId: string) => `${Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId)}/permissions` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMANDS>}/permissions`,\r\n\tAPPLICATION_GUILD_COMMAND_PERMISSIONS: (appId: string, guildId: string, cmdId: string) => `${Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId)}/permissions` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMAND>}/permissions`,\r\n\tAPPLICATION_GUILD_COMMAND: (appId: string, guildId: string, cmdId: string) => `${Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId)}/${cmdId}` as `${ReturnType<typeof Endpoints.APPLICATION_GUILD_COMMANDS>}/{cmd_id}`,\r\n\tAPPLICATION_GUILD_COMMANDS: (appId: string, guildId: string) => `/applications/${appId}/guilds/${guildId}/commands` as \"/applications/{app_id}/guilds/{guild_id}/commands\",\r\n\tAPPLICATION_SKUS: (appId: string) => `/applications/${appId}/skus` as \"/applications/{app_id}/skus\",\r\n\tATTACHMENTS_REFRESH_URLS: `/attachments/refresh-urls` as const,\r\n\tCHANNEL: (chanId: string) => `${Endpoints.CHANNELS}/${chanId}` as `${typeof Endpoints.CHANNELS}/{channel_id}`,\r\n\tCHANNEL_ATTACHMENTS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/attachments` as `${ReturnType<typeof Endpoints.CHANNEL>}/attachments`,\r\n\tCHANNEL_BULK_DELETE: (chanId: string) => `${Endpoints.CHANNEL_MESSAGES(chanId)}/bulk-delete` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGES>}/bulk-delete`,\r\n\tCHANNEL_FOLLOWERS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/followers` as `${ReturnType<typeof Endpoints.CHANNEL>}/followers`,\r\n\tCHANNEL_INVITES: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/invites` as `${ReturnType<typeof Endpoints.CHANNEL>}/invites`,\r\n\tCHANNEL_MESSAGE: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGES(chanId)}/${msgId}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGES>}/{message_id}`,\r\n\tCHANNEL_MESSAGE_CROSSPOST: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/crosspost` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/crosspost`,\r\n\tCHANNEL_MESSAGE_REACTION: (chanId: string, msgId: string, reaction: string) => `${Endpoints.CHANNEL_MESSAGE_REACTIONS(chanId, msgId)}/${reaction}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE_REACTIONS>}/{reaction}`,\r\n\tCHANNEL_MESSAGE_REACTION_USER: (chanId: string, msgId: string, reaction: string, userId: string) => `${Endpoints.CHANNEL_MESSAGE_REACTION(chanId, msgId, reaction)}/${userId}` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE_REACTION>}/{user_id}`,\r\n\tCHANNEL_MESSAGE_REACTIONS: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/reactions` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/reactions`,\r\n\tCHANNEL_MESSAGE_THREADS: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_MESSAGE(chanId, msgId)}/threads` as `${ReturnType<typeof Endpoints.CHANNEL_MESSAGE>}/threads`,\r\n\tCHANNEL_MESSAGES: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/messages` as `${ReturnType<typeof Endpoints.CHANNEL>}/messages`,\r\n\tCHANNEL_PERMISSION: (chanId: string, permId: string) => `${Endpoints.CHANNEL_PERMISSIONS(chanId)}/${permId}` as `${ReturnType<typeof Endpoints.CHANNEL_PERMISSIONS>}/{perm_id}`,\r\n\tCHANNEL_PERMISSIONS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/permissions` as `${ReturnType<typeof Endpoints.CHANNEL>}/permissions`,\r\n\tCHANNEL_PIN: (chanId: string, msgId: string) => `${Endpoints.CHANNEL_PINS(chanId)}/${msgId}` as `${ReturnType<typeof Endpoints.CHANNEL_PINS>}/{message_id}`,\r\n\tCHANNEL_PINS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/messages/pins` as `${ReturnType<typeof Endpoints.CHANNEL>}/messages/pins`,\r\n\tCHANNEL_RECIPIENT: (chanId: string, userId: string) => `${Endpoints.CHANNEL(chanId)}/recipients/${userId}` as `${ReturnType<typeof Endpoints.CHANNEL>}/recipients/{user_id}`,\r\n\tCHANNEL_THREADS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/threads` as `${ReturnType<typeof Endpoints.CHANNEL>}/threads`,\r\n\tCHANNEL_THREAD_MEMBER: (chanId: string, memberId: string) => `${Endpoints.CHANNEL_THREAD_MEMBERS(chanId)}/${memberId}` as `${ReturnType<typeof Endpoints.CHANNEL_THREAD_MEMBERS>}/{member_id}`,\r\n\tCHANNEL_THREAD_MEMBERS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/thread-members` as `${ReturnType<typeof Endpoints.CHANNEL>}/thread-members`,\r\n\tCHANNEL_THREADS_ARCHIVED_PRIVATE: (chanId: string) => `${Endpoints.CHANNEL_THREADS(chanId)}/archived/private` as `${ReturnType<typeof Endpoints.CHANNEL_THREADS>}/archived/private`,\r\n\tCHANNEL_THREADS_ARCHIVED_PRIVATE_USER: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/users/@me/threads/archived/private` as `${ReturnType<typeof Endpoints.CHANNEL>}/users/@me/threads/archived/private`,\r\n\tCHANNEL_THREADS_ARCHIVED_PUBLIC: (chanId: string) => `${Endpoints.CHANNEL_THREADS(chanId)}/archived/public` as `${ReturnType<typeof Endpoints.CHANNEL_THREADS>}/archived/public`,\r\n\tCHANNEL_TYPING: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/typing` as `${ReturnType<typeof Endpoints.CHANNEL>}/typing`,\r\n\tCHANNEL_VOICE_STATUS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/voice-status` as `${ReturnType<typeof Endpoints.CHANNEL>}/voice-status`,\r\n\tCHANNEL_VOICE_HANGOUT: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/voice-hangout` as `${ReturnType<typeof Endpoints.CHANNEL>}/voice-hangout`,\r\n\tCHANNEL_WEBHOOKS: (chanId: string) => `${Endpoints.CHANNEL(chanId)}/webhooks` as `${ReturnType<typeof Endpoints.CHANNEL>}/webhooks`,\r\n\tCHANNELS: \"/channels\" as const,\r\n\tGATEWAY: \"/gateway\" as const,\r\n\tGATEWAY_BOT: \"/gateway/bot\" as const,\r\n\tGUILD: (guildId: string) => `${Endpoints.GUILDS}/${guildId}` as `${typeof Endpoints.GUILDS}/{guild_id}`,\r\n\tGUILD_AUDIT_LOGS: (guildId: string) => `${Endpoints.GUILD(guildId)}/audit-logs` as `${ReturnType<typeof Endpoints.GUILD>}/audit-logs`,\r\n\tGUILD_AUTO_MOD_RULE: (guildId: string, ruleId: string) => `${Endpoints.GUILD_AUTO_MOD_RULES(guildId)}/${ruleId}` as `${ReturnType<typeof Endpoints.GUILD_AUTO_MOD_RULES>}/{rule_id}`,\r\n\tGUILD_AUTO_MOD_RULES: (guildId: string) => `${Endpoints.GUILD(guildId)}/auto-moderation/rules` as `${ReturnType<typeof Endpoints.GUILD>}/auto-moderation/rules`,\r\n\tGUILD_BAN: (guildId: string, memberId: string) => `${Endpoints.GUILD_BANS(guildId)}/${memberId}` as `${ReturnType<typeof Endpoints.GUILD_BANS>}/{member_id}`,\r\n\tGUILD_BANS: (guildId: string) => `${Endpoints.GUILD(guildId)}/bans` as `${ReturnType<typeof Endpoints.GUILD>}/bans`,\r\n\tGUILD_CHANNELS: (guildId: string) => `${Endpoints.GUILD(guildId)}/channels` as `${ReturnType<typeof Endpoints.GUILD>}/channels`,\r\n\tGUILD_EMOJI: (guildId: string, emojiId: string) => `${Endpoints.GUILD_EMOJIS(guildId)}/${emojiId}` as `${ReturnType<typeof Endpoints.GUILD_EMOJIS>}/{emoji_id}`,\r\n\tGUILD_EMOJIS: (guildId: string) => `${Endpoints.GUILD(guildId)}/emojis` as `${ReturnType<typeof Endpoints.GUILD>}/emojis`,\r\n\tGUILD_INVITES: (guildId: string) => `${Endpoints.GUILD(guildId)}/invites` as `${ReturnType<typeof Endpoints.GUILD>}/invites`,\r\n\tGUILD_INTEGRATION: (guildId: string, integrationId: string) => `${Endpoints.GUILD_INTEGRATIONS(guildId)}/${integrationId}` as `${ReturnType<typeof Endpoints.GUILD_INTEGRATIONS>}/{integration_id}`,\r\n\tGUILD_INTEGRATIONS: (guildId: string) => `${Endpoints.GUILD(guildId)}/integrations` as `${ReturnType<typeof Endpoints.GUILD>}/integrations`,\r\n\tGUILD_MEMBER: (guildId: string, memberId: string) => `${Endpoints.GUILD_MEMBERS(guildId)}/${memberId}` as `${ReturnType<typeof Endpoints.GUILD_MEMBERS>}/{member_id}`,\r\n\tGUILD_MEMBER_ROLE: (guildId: string, memberId: string, roleId: string) => `${Endpoints.GUILD_MEMBER(guildId, memberId)}/roles/${roleId}` as `${ReturnType<typeof Endpoints.GUILD_MEMBER>}/roles/{role_id}`,\r\n\tGUILD_MEMBERS: (guildId: string) => `${Endpoints.GUILD(guildId)}/members` as `${ReturnType<typeof Endpoints.GUILD>}/members`,\r\n\tGUILD_MEMBERS_SEARCH: (guildId: string) => `${Endpoints.GUILD_MEMBERS(guildId)}/search` as `${ReturnType<typeof Endpoints.GUILD_MEMBERS>}/search`,\r\n\tGUILD_MESSAGES_SEARCH: (guildId: string) => `${Endpoints.GUILD(guildId)}/messages/search` as `${ReturnType<typeof Endpoints.GUILD>}/messages/search`,\r\n\tGUILD_PREVIEW: (guildId: string) => `${Endpoints.GUILD(guildId)}/preview` as `${ReturnType<typeof Endpoints.GUILD>}/preview`,\r\n\tGUILD_PRUNE: (guildId: string) => `${Endpoints.GUILD(guildId)}/prune` as `${ReturnType<typeof Endpoints.GUILD>}/prune`,\r\n\tGUILD_ROLE: (guildId: string, roleId: string) => `${Endpoints.GUILD_ROLES(guildId)}/${roleId}` as `${ReturnType<typeof Endpoints.GUILD_ROLES>}/{role_id}`,\r\n\tGUILD_ROLES: (guildId: string) => `${Endpoints.GUILD(guildId)}/roles` as `${ReturnType<typeof Endpoints.GUILD>}/roles`,\r\n\tGUILD_SCHEDULED_EVENTS: (guildId: string) => `${Endpoints.GUILD(guildId)}/scheduled-events` as `${ReturnType<typeof Endpoints.GUILD>}/scheduled-events`,\r\n\tGUILD_SCHEDULED_EVENT: (guildId: string, eventId: string) => `${Endpoints.GUILD_SCHEDULED_EVENTS(guildId)}/${eventId}` as `${ReturnType<typeof Endpoints.GUILD_SCHEDULED_EVENTS>}/{event_id}`,\r\n\tGUILD_SCHEDULED_EVENT_USERS: (guildId: string, eventId: string) => `${Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId)}/users` as `${ReturnType<typeof Endpoints.GUILD_SCHEDULED_EVENT>}/users`,\r\n\tGUILD_STICKER: (guildId: string, stickerId: string) => `${Endpoints.GUILD_STICKERS(guildId)}/${stickerId}` as `${ReturnType<typeof Endpoints.GUILD_STICKERS>}/{sticker_id}`,\r\n\tGUILD_STICKERS: (guildId: string) => `${Endpoints.GUILD(guildId)}/stickers` as `${ReturnType<typeof Endpoints.GUILD>}/stickers`,\r\n\tGUILD_TEMPLATE: (guildId: string, code: string) => `${Endpoints.GUILD_TEMPLATES(guildId)}/${code}` as `${ReturnType<typeof Endpoints.GUILD_TEMPLATES>}/{code}`,\r\n\tGUILD_THREADS_ACTIVE: (guildId: string) => `${Endpoints.GUILD(guildId)}/threads/active` as `${ReturnType<typeof Endpoints.GUILD>}/threads/active`,\r\n\tGUILD_TEMPLATES: (guildId: string) => `${Endpoints.GUILD(guildId)}/templates` as `${ReturnType<typeof Endpoints.GUILD>}/templates`,\r\n\tGUILD_VANITY: (guildId: string) => `${Endpoints.GUILD(guildId)}/vanity-url` as `${ReturnType<typeof Endpoints.GUILD>}/vanity-url`,\r\n\tGUILD_VOICE_REGIONS: (guildId: string) => `${Endpoints.GUILD(guildId)}/regions` as `${ReturnType<typeof Endpoints.GUILD>}/regions`,\r\n\tGUILD_VOICE_STATE_USER: (guildId: string, memberId: string) => `${Endpoints.GUILD(guildId)}/voice-states/${memberId}` as `${ReturnType<typeof Endpoints.GUILD>}/voice-states/{member_id}`,\r\n\tGUILD_WEBHOOKS: (guildId: string) => `${Endpoints.GUILD(guildId)}/webhooks` as `${ReturnType<typeof Endpoints.GUILD>}/webhooks`,\r\n\tGUILD_WELCOME_SCREEN: (guildId: string) => `${Endpoints.GUILD(guildId)}/welcome-screen` as `${ReturnType<typeof Endpoints.GUILD>}/welcome-screen`,\r\n\tGUILD_WIDGET: (guildId: string) => `${Endpoints.GUILD(guildId)}/widget.json` as `${ReturnType<typeof Endpoints.GUILD>}/widget.json`,\r\n\tGUILD_WIDGET_SETTINGS: (guildId: string) => `${Endpoints.GUILD(guildId)}/widget` as `${ReturnType<typeof Endpoints.GUILD>}/widget`,\r\n\tGUILDS: \"/guilds\" as const,\r\n\tINTERACTION_CALLBACK: (interactionId: string, token: string) => `/interactions/${interactionId}/${token}/callback` as \"/interactions/{interaction_id}/{token}/callback\",\r\n\tINVITES: (inviteId: string) => `/invites/${inviteId}` as \"/invites/{invite_id}\",\r\n\tINVITE_TARGET_USERS: (inviteId: string) => `${Endpoints.INVITES(inviteId)}/target-users` as `${ReturnType<typeof Endpoints.INVITES>}/target-users`,\r\n\tINVITE_TARGET_USERS_JOB_STATUS: (inviteId: string) => `${Endpoints.INVITE_TARGET_USERS(inviteId)}/job-status` as `${ReturnType<typeof Endpoints.INVITE_TARGET_USERS>}/job-status`,\r\n\tOAUTH2_APPLICATION: (appId: string) => `/oauth2/applications/${appId}` as \"/oauth2/applications/{app_id}\",\r\n\tOAUTH2_TOKEN: \"/api/oauth2/token\" as const,\r\n\tPOLL_ANSWER: (chanId: string, msgId: string, answerId: string) => `${Endpoints.CHANNEL(chanId)}/polls/${msgId}/answers/${answerId}` as `${ReturnType<typeof Endpoints.CHANNEL>}/polls/{message_id}/answers/{answer_id}`,\r\n\tPOLL_EXPIRE: (chanId: string, msgId: string) => `${Endpoints.CHANNEL(chanId)}/polls/${msgId}/expire` as `${ReturnType<typeof Endpoints.CHANNEL>}/polls/{message_id}/expire`,\r\n\tSKU_SUBSCRIPTIONS: (skuId: string) => `/skus/${skuId}/subscriptions` as \"/skus/{sku_id}/subscriptions\",\r\n\tSKU_SUBSCRIPTION: (skuId: string, subscriptionId: string) => `${Endpoints.SKU_SUBSCRIPTIONS(skuId)}/${subscriptionId}` as `${ReturnType<typeof Endpoints.SKU_SUBSCRIPTIONS>}/{subscription_id}`,\r\n\tSTAGE_INSTANCE_CHANNEL: (chanId: string) => `${Endpoints.STAGE_INSTANCES}/${chanId}` as `${typeof Endpoints.STAGE_INSTANCES}/{channel_id}`,\r\n\tSTAGE_INSTANCES: \"/stage-instances\" as const,\r\n\tSTICKER: (stickerId: string) => `/stickers/${stickerId}` as \"/stickers/{sticker_id}\",\r\n\tTEMPLATE: (code: string) => `/guilds/templates/${code}` as \"/guilds/templates/{code}\",\r\n\tUSER: (userId: string) => `${Endpoints.USERS}/${userId}` as `${typeof Endpoints.USERS}/{user_id}`,\r\n\tUSER_APPLICATION_ROLE_CONNECTION: (userId: string, appId: string) => `${Endpoints.USER(userId)}/applications/${appId}/role-connection` as `${ReturnType<typeof Endpoints.USER>}/applications/{app_id}/role-connection`,\r\n\tUSER_CHANNELS: (userId: string) => `${Endpoints.USER(userId)}/channels` as `${ReturnType<typeof Endpoints.USER>}/channels`,\r\n\tUSER_CONNECTIONS: (userId: string) => `${Endpoints.USER(userId)}/connections` as `${ReturnType<typeof Endpoints.USER>}/connections`,\r\n\tUSER_GUILD: (userId: string, guildId: string) => `${Endpoints.USER_GUILDS(userId)}/${guildId}` as `${ReturnType<typeof Endpoints.USER_GUILDS>}/{guild_id}`,\r\n\tUSER_GUILDS: (userId: string) => `${Endpoints.USER(userId)}/guilds` as `${ReturnType<typeof Endpoints.USER>}/guilds`,\r\n\tUSER_GUILD_VOICE_STATE: (guildId: string, userId: string) => `${Endpoints.GUILD(guildId)}/voice-states/${userId}` as `${ReturnType<typeof Endpoints.GUILD>}/voice-states/{user_id}`,\r\n\tUSERS: \"/users\" as const,\r\n\tVOICE_REGIONS: \"/voice/regions\" as const,\r\n\tWEBHOOK: (hookId: string) => `/webhooks/${hookId}` as \"/webhooks/{hook_id}\",\r\n\tWEBHOOK_TOKEN: (hookId: string, token: string) => `${Endpoints.WEBHOOK(hookId)}/${token}` as `${ReturnType<typeof Endpoints.WEBHOOK>}/{token}`,\r\n\tWEBHOOK_TOKEN_GITHUB: (hookId: string, token: string) => `${Endpoints.WEBHOOK_TOKEN(hookId, token)}/github` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/github`,\r\n\tWEBHOOK_TOKEN_MESSAGE: (hookId: string, token: string, msgId: string) => `/webhooks/${hookId}/${token}/messages/${msgId}` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/messages/{message_id}`,\r\n\tWEBHOOK_TOKEN_SLACK: (hookId: string, token: string) => `${Endpoints.WEBHOOK_TOKEN(hookId, token)}/slack` as `${ReturnType<typeof Endpoints.WEBHOOK_TOKEN>}/slack`,\r\n};\r\n\r\nexport = Endpoints;\r\n","/* eslint-disable no-async-promise-executor */\r\n\r\nimport fs = require(\"fs\");\r\nimport path = require(\"path\");\r\nimport { EventEmitter } from \"events\";\r\nimport crypto = require(\"crypto\");\r\nimport util = require(\"util\");\r\n\r\nimport Endpoints = require(\"./Endpoints\");\r\nconst { version } = JSON.parse(fs.readFileSync(path.join(__dirname, \"../package.json\"), { encoding: \"utf8\" }));\r\nimport Constants = require(\"./Constants\");\r\nimport SM = require(\"./StateMachine\");\r\n\r\nimport type { HTTPMethod, RatelimitInfo, RequestEventData, HandlerEvents } from \"./Types\";\r\n\r\ndeclare global {\r\n\tvar snowtransferDebugLogging: boolean\r\n}\r\n\r\n\r\nconst routeRegex = /\\/([a-z-]+)\\/(?:\\d+)/g;\r\nconst reactionsRegex = /\\/reactions\\/[^/]+/g;\r\nconst reactionsUserRegex = /\\/reactions\\/:id\\/[^/]+/g;\r\nconst webhooksRegex = /^\\/webhooks\\/(\\d+)\\/[A-Za-z0-9-_]{64,}/;\r\nconst isMessageEndpointRegex = /\\/messages\\/:id$/;\r\nconst isGuildChannelsRegex = /\\/guilds\\/\\d+\\/channels$/;\r\nconst messagesRegex = /\\/messages\\/\\d+$/;\r\n\r\nconst disallowedBodyMethods = new Set([\"head\", \"get\", \"delete\"]);\r\n\r\n\r\n\r\n\r\n\r\nexport class DiscordAPIError extends Error {\r\n\tpublic method: string;\r\n\tpublic path: string;\r\n\tpublic code: number;\r\n\tpublic httpStatus: number;\r\n\r\n\tpublic request: RequestEventData;\r\n\r\n\tpublic response: Response;\r\n\r\n\tpublic constructor(error: { message?: string; code?: number; }, request: RequestEventData, response: Response) {\r\n\t\tsuper();\r\n\t\tthis.name = \"DiscordAPIError\";\r\n\t\tthis.message = error.message ?? util.inspect(error);\r\n\t\tthis.method = request.method;\r\n\t\tthis.path = request.endpoint;\r\n\t\tthis.code = error.code ?? 4000;\r\n\t\tthis.httpStatus = response.status;\r\n\r\n\t\tObject.defineProperties(this, {\r\n\t\t\trequest: { enumerable: false, value: request },\r\n\t\t\tresponse: { enumerable: false, value: response },\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nexport interface Counter {\r\n\tid: string;\r\n\r\n\r\n\r\n\r\n\thasReset(): boolean;\r\n\r\n\r\n\r\n\r\n\tcanTake(): boolean;\r\n\r\n\r\n\r\n\r\n\ttake(): boolean;\r\n\r\n\ttimeUntilReset(): number;\r\n\r\n\tresponseReceived(): void;\r\n\r\n\tapplyCount(limit: number | null, remaining: number, resetAfter: number): void;\r\n}\r\n\r\n\r\n\r\n\r\nexport class IntervalCounter implements Counter {\r\n\r\n\r\n\r\n\tpublic remaining: number;\r\n\r\n\tprivate firstRequestTime = 0;\r\n\r\n\tprivate resetAt: number | null = null;\r\n\r\n\tpublic readonly id = new Array(3).fill(0).map(() => String.fromCodePoint(Math.floor(Math.random()*26+65))).join(\"\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public limit: number, public reset: number) {\r\n\t\tthis.remaining = limit;\r\n\t}\r\n\r\n\tprivate checkReset(): void {\r\n\r\n\t\tconst now = Date.now();\r\n\r\n\t\tif (this.resetAt !== null) {\r\n\t\t\tif (now > this.resetAt) {\r\n\t\t\t\tthis.firstRequestTime = 0;\r\n\t\t\t\tthis.remaining = this.limit;\r\n\t\t\t\tthis.resetAt = null;\r\n\t\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [itrv] [${this.id}] informed reset: ${this.remaining}/${this.limit}`);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telse if (now > this.firstRequestTime + this.reset) {\r\n\t\t\tthis.firstRequestTime = 0;\r\n\t\t\tthis.remaining = this.limit;\r\n\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [itrv] [${this.id}] predicted reset: ${this.remaining}/${this.limit}`);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic hasReset(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining === this.limit;\r\n\t}\r\n\r\n\tpublic canTake(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining > 0;\r\n\t}\r\n\r\n\tpublic take(): boolean {\r\n\t\tthis.checkReset();\r\n\t\tif (this.remaining === this.limit) this.firstRequestTime = Date.now();\r\n\t\tlet ok = this.remaining > 0;\r\n\t\tthis.remaining--;\r\n\t\treturn ok;\r\n\t}\r\n\r\n\tpublic timeUntilReset(): number {\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt) return Math.max(this.resetAt - now + 1, 0);\r\n\t\telse return Math.max(this.firstRequestTime + this.reset - Date.now() + 1, 0);\r\n\t}\r\n\r\n\r\n\tpublic responseReceived(): void {\r\n\t\tif (this.remaining === this.limit-1 && this.firstRequestTime) this.firstRequestTime = Date.now()\r\n\t}\r\n\r\n\tpublic applyCount(limit: number | null, remaining: number, resetAfter: number): void {\r\n\t\tif (limit != null) this.limit = limit;\r\n\t\tthis.remaining = remaining;\r\n\t\tthis.resetAt = Date.now() + resetAfter;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\nexport class LeakyCounter implements Counter {\r\n\r\n\r\n\r\n\tpublic remaining: number;\r\n\r\n\tprivate resetAt: number | null = null;\r\n\r\n\tpublic readonly id = new Array(3).fill(0).map(() => String.fromCodePoint(Math.floor(Math.random()*26+65))).join(\"\");\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public limit: number) {\r\n\t\tthis.remaining = limit;\r\n\t}\r\n\r\n\tprivate checkReset(): void {\r\n\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt && now > this.resetAt) {\r\n\t\t\tthis.remaining = Math.min(this.limit, this.remaining + 1);\r\n\t\t\tthis.resetAt = null;\r\n\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] restore one: ${this.remaining}/${this.limit}`);\r\n\t\t}\r\n\t}\r\n\r\n\tpublic hasReset(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining === this.limit;\r\n\t}\r\n\r\n\tpublic canTake(): boolean {\r\n\t\tthis.checkReset();\r\n\t\treturn this.remaining > 0;\r\n\t}\r\n\r\n\tpublic take(): boolean {\r\n\t\tthis.checkReset();\r\n\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] took: ${this.remaining-1} left`);\r\n\t\treturn this.remaining-- > 0;\r\n\t}\r\n\r\n\tpublic timeUntilReset(): number {\r\n\t\tconst now = Date.now();\r\n\t\tif (this.resetAt) return Math.max(this.resetAt - now + 1, 0);\r\n\t\telse return 0;\r\n\t}\r\n\r\n\tpublic responseReceived(): void {}\r\n\r\n\tpublic applyCount(limit: number | null, remaining: number, resetAfter: number): void {\r\n\t\tif (limit != null) this.limit = limit;\r\n\t\tthis.remaining = remaining;\r\n\t\tthis.resetAt = Date.now() + resetAfter;\r\n\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [leak] [${this.id}] applied: ${remaining}/${limit} - wait another ${resetAfter}`);\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\nexport class Bucket {\r\n\r\n\tpublic readonly sm = new SM(\"ready\");\r\n\r\n\tpublic readonly calls: Array<() => any> = [];\r\n\r\n\tpublic readonly counters: Array<Counter> = [];\r\n\r\n\tprivate pauseRequested = false;\r\n\r\n\r\n\r\n\r\n\tpublic constructor(counters: Array<Counter>) {\r\n\t\tthis.counters = counters;\r\n\r\n\r\n\t\tthis.sm.defineState(\"ready\", {\r\n\t\t\tonEnter: [],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"enqueue\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"pause\", {\r\n\t\t\t\t\tdestination: \"paused\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"check\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tif (this.pauseRequested) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"pause\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!this.counters.every(c => c.canTake())) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"cooldown\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.calls.length) {\r\n\t\t\t\t\t\treturn this.sm.doTransition(\"run\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this.sm.doTransition(\"empty\");\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"pause\", {\r\n\t\t\t\t\tdestination: \"paused\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"cooldown\", {\r\n\t\t\t\t\tdestination: \"cooldown\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"run\", {\r\n\t\t\t\t\tdestination: \"running\"\r\n\t\t\t\t}],\r\n\t\t\t\t[\"empty\", {\r\n\t\t\t\t\tdestination: \"ready\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"running\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\r\n\t\t\t\t\tthis.counters.forEach(c => c.take());\r\n\r\n\t\t\t\t\tconst cb = this.calls.shift();\r\n\t\t\t\t\tcb!().then(() => {\r\n\t\t\t\t\t\tthis.sm.doTransition(\"complete\");\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"complete\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"cooldown\", {\r\n\t\t\tonEnter: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.sm.doTransitionLater(\"reset\", Math.max(...this.counters.map(c => c.timeUntilReset())));\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\tonLeave: [],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"reset\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\r\n\t\tthis.sm.defineState(\"paused\", {\r\n\t\t\tonEnter: [],\r\n\t\t\tonLeave: [\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis.pauseRequested = false;\r\n\t\t\t\t}\r\n\t\t\t],\r\n\t\t\ttransitions: new Map([\r\n\t\t\t\t[\"resume\", {\r\n\t\t\t\t\tdestination: \"check\"\r\n\t\t\t\t}]\r\n\t\t\t])\r\n\t\t});\r\n\r\n\t\tthis.sm.freeze();\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic enqueue<T>(fn: (bkt: this) => Promise<T>): Promise<T> {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tthis.calls.push(() => {\r\n\t\t\t\treturn fn(this).then(resolve).catch(reject);\r\n\t\t\t});\r\n\r\n\t\t\tif (this.sm.currentStateName === \"ready\") this.sm.doTransition(\"enqueue\");\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic pause(): void {\r\n\t\tthis.pauseRequested = true;\r\n\t\tif (this.sm.currentStateName === \"ready\") this.sm.doTransition(\"pause\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic resume(): void {\r\n\t\tthis.pauseRequested = false;\r\n\t\tif (this.sm.currentStateName !== \"paused\") return\r\n\t\tthis.sm.doTransition(\"resume\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\tpublic dropQueue(): void {\r\n\t\tthis.calls.length = 0;\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport class Ratelimiter {\r\n\r\n\r\n\r\n\tpublic readonly buckets = new Map<string, Bucket>();\r\n\r\n\r\n\r\n\tpublic readonly globalBucket = new Bucket([new IntervalCounter(Constants.GLOBAL_REQUESTS_PER_SECOND, 1000)]);\r\n\r\n\r\n\r\n\r\n\tpublic get global() {\r\n\t\treturn !this.globalBucket.counters[0].canTake();\r\n\t}\r\n\r\n\tpublic constructor() {\r\n\t\tsetInterval(() => {\r\n\t\t\tfor (const [key, value] of this.buckets.entries()) {\r\n\t\t\t\tconst counter = value.counters[0];\r\n\t\t\t\tif (counter.hasReset()) this.buckets.delete(key);\r\n\t\t\t}\r\n\t\t}, 1*60*60*1000).unref();\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic routify(url: string, method: string): string {\r\n\t\tlet route = url.replaceAll(routeRegex, function (match, p: string) {\r\n\t\t\treturn p === \"channels\" || p === \"guilds\" || p === \"webhooks\" ? match : `/${p}/:id`;\r\n\t\t}).replaceAll(reactionsRegex, \"/reactions/:id\").replaceAll(reactionsUserRegex, \"/reactions/:id/:userId\").replace(webhooksRegex, \"/webhooks/$1/:token\");\r\n\r\n\t\tif (method === \"DELETE\" && isMessageEndpointRegex.test(route)) route = method + route;\r\n\t\telse if (method === \"GET\" && isGuildChannelsRegex.test(route)) route = \"/guilds/:id/channels\";\r\n\r\n\t\tif (method === \"PUT\" || method === \"DELETE\") {\r\n\t\t\tconst index = route.indexOf(\"/reactions\");\r\n\t\t\tif (index !== -1) route = \"MODIFY\" + route.slice(0, index + 10);\r\n\t\t}\r\n\r\n\t\treturn route;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic queue<T>(fn: (bucket: Bucket) => Promise<T>, url: string, method: string): Promise<T> {\r\n\t\tconst routeKey = this.routify(url, method);\r\n\r\n\t\tlet bucket = this.buckets.get(routeKey);\r\n\t\tif (!bucket) {\r\n\t\t\tif (method === \"DELETE\" && messagesRegex.test(url)) {\r\n\t\t\t\tbucket = new Bucket([new LeakyCounter(1), new IntervalCounter(5, 5000), this.globalBucket.counters[0]]);\r\n\t\t\t} else bucket = new Bucket([new LeakyCounter(1), this.globalBucket.counters[0]]);\r\n\t\t\tthis.buckets.set(routeKey, bucket);\r\n\t\t}\r\n\r\n\t\treturn bucket.enqueue(fn);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic setGlobal(ms: number): void {\r\n\t\tthis.globalBucket.counters[0].applyCount(Constants.GLOBAL_REQUESTS_PER_SECOND, 0, ms);\r\n\t}\r\n}\r\n\r\nexport namespace RequestHandler {\r\n\texport type Options = {\r\n\r\n\t\tbaseHost: string;\r\n\r\n\t\tbaseURL: string;\r\n\r\n\t\tbypassBuckets: boolean;\r\n\r\n\t\tretryFailed: boolean;\r\n\r\n\t\tretryLimit: number;\r\n\t\theaders: { Authorization?: string; \"User-Agent\": string; },\r\n\t\tfetch: typeof fetch\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nexport class RequestHandler extends EventEmitter<HandlerEvents> {\r\n\tpublic options: RequestHandler.Options;\r\n\tpublic latency: number;\r\n\tpublic apiURL: string;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public ratelimiter: Ratelimiter, options?: { token?: string; } & Partial<Omit<RequestHandler.Options, \"headers\">>) {\r\n\t\tsuper();\r\n\r\n\t\tthis.options = {\r\n\t\t\tbaseHost: options?.baseHost ?? Endpoints.BASE_HOST,\r\n\t\t\tbaseURL: options?.baseURL ?? Endpoints.BASE_URL,\r\n\t\t\tbypassBuckets: options?.bypassBuckets ?? false,\r\n\t\t\tretryFailed: options?.retryFailed ?? false,\r\n\t\t\tretryLimit: options?.retryLimit ?? Constants.DEFAULT_RETRY_LIMIT,\r\n\t\t\theaders: {\r\n\t\t\t\t\"User-Agent\": `Discordbot (https:\r\n\t\t\t},\r\n\t\t\tfetch: options?.fetch ?? fetch\r\n\t\t};\r\n\t\tif (options?.token) this.options.headers.Authorization = options.token;\r\n\r\n\t\tthis.apiURL = this.options.baseHost + Endpoints.BASE_URL;\r\n\t\tthis.latency = 500;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"json\", data?: any, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: boolean): Promise<any>\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"multipart\", data?: FormData, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: boolean): Promise<any>\r\n\tpublic request(endpoint: string, params: Record<string, any> | undefined, method: HTTPMethod, dataType: \"json\" | \"multipart\", data?: any, extraHeaders?: Record<string, string>, retries?: number, rawResponse?: true): Promise<Response>\r\n\tpublic request(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, dataType: \"json\" | \"multipart\", data?: any, extraHeaders?: Record<string, string>, retries = this.options.retryLimit, rawResponse = false): Promise<any> {\r\n\t\tconst stack = new Error().stack as string;\r\n\t\treturn new Promise(async (resolve, reject) => {\r\n\t\t\tconst fn = async (bkt?: Bucket | undefined) => {\r\n\t\t\t\tconst reqId = crypto.randomBytes(20).toString(\"hex\");\r\n\t\t\t\ttry {\r\n\t\t\t\t\tconst request = { endpoint, method: method.toUpperCase(), dataType, data: data ?? {} };\r\n\t\t\t\t\tthis.emit(\"request\", reqId, request);\r\n\r\n\t\t\t\t\tconst before = Date.now();\r\n\r\n\t\t\t\t\tlet response: Response;\r\n\t\t\t\t\tswitch (dataType) {\r\n\t\t\t\t\tcase \"json\":\r\n\t\t\t\t\t\tresponse = await this._request(endpoint, params, method, data, extraHeaders);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase \"multipart\":\r\n\t\t\t\t\t\tif (!data) throw new Error(\"No multipart data\");\r\n\t\t\t\t\t\tresponse = await this._multiPartRequest(endpoint, params, method, data, extraHeaders);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tthrow new Error(\"Forbidden dataType. Use json or multipart or ensure multipart has FormData\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.latency = Date.now() - before;\r\n\t\t\t\t\tbkt?.counters.forEach(c => c.responseReceived());\r\n\r\n\t\t\t\t\tif (bkt) this._applyRatelimitHeaders(bkt, response.headers);\r\n\r\n\t\t\t\t\tif (response.status && !Constants.OK_STATUS_CODES.has(response.status) && response.status !== 429) {\r\n\t\t\t\t\t\tif (this.options.retryFailed && !Constants.DO_NOT_RETRY_STATUS_CODES.has(response.status) && retries !== 0) return this.request(endpoint, params, method, dataType, data, extraHeaders, retries--).then(resolve).catch(reject);\r\n\t\t\t\t\t\tthrow new DiscordAPIError({ message: await response.text() }, request, response);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (response.status === 429) {\r\n\t\t\t\t\t\tconst b = await response.json() as RatelimitInfo;\r\n\t\t\t\t\t\tif (b.global) this.ratelimiter.setGlobal(b.retry_after * 1000);\r\n\t\t\t\t\t\tif (globalThis.snowtransferDebugLogging) console.log(`${new Date().toISOString()} [rate] [${bkt?.counters[0].id}] !! 429 - guess there was 0 remaining, wait another ${b.retry_after*1000} (route: ${this.ratelimiter.routify(endpoint, method.toUpperCase())})`);\r\n\t\t\t\t\t\tthis.emit(\"rateLimit\", {\r\n\t\t\t\t\t\t\tmethod: method.toUpperCase(),\r\n\t\t\t\t\t\t\tpath: endpoint,\r\n\t\t\t\t\t\t\troute: this.ratelimiter.routify(endpoint, method.toUpperCase())\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (this.options.retryFailed && retries !== 0) return this.request(endpoint, params, method, dataType, data, extraHeaders, 0).then(resolve).catch(reject);\r\n\r\n\t\t\t\t\t\tthrow new DiscordAPIError({ message: b.message, code: b.code ?? 429 }, request, response);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.emit(\"done\", reqId, response, request);\r\n\r\n\t\t\t\t\tif (rawResponse) return resolve(response);\r\n\r\n\t\t\t\t\tif (response.body) {\r\n\t\t\t\t\t\tlet b: any;\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tb = await response.json();\r\n\t\t\t\t\t\t} catch {\r\n\t\t\t\t\t\t\treturn resolve(undefined);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn resolve(b);\r\n\t\t\t\t\t} else return resolve(undefined);\r\n\t\t\t\t} catch (error: any) {\r\n\t\t\t\t\tif (error?.stack) error.stack = error.stack + `\\n${stack.split(\"\\n\").slice(1).join(\"\\n\")}`;\r\n\t\t\t\t\tthis.emit(\"requestError\", reqId, error);\r\n\t\t\t\t\treturn reject(error as Error);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif (this.options.bypassBuckets) fn();\r\n\t\t\telse this.ratelimiter.queue(fn, endpoint, method.toUpperCase());\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate _applyRatelimitHeaders(bkt: Bucket, headers: Headers): void {\r\n\t\tconst remaining = headers.get(\"x-ratelimit-remaining\");\r\n\t\tconst limit = headers.get(\"x-ratelimit-limit\");\r\n\t\tconst resetAfter = headers.get(\"x-ratelimit-reset-after\");\r\n\t\tconst isGlobal = headers.get(\"x-ratelimit-global\");\r\n\r\n\t\tif (remaining === null && !bkt.counters[0].canTake() && !isGlobal) {\r\n\r\n\t\t\tbkt.counters[0].applyCount(null, 1, 0);\r\n\t\t}\r\n\r\n\t\tif (remaining && limit && resetAfter && !isGlobal) {\r\n\t\t\tbkt.counters[0].applyCount(Number.parseInt(limit), Number.parseInt(remaining), Number.parseFloat(resetAfter) * 1000);\r\n\t\t}\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate async _request(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, data?: any, extraHeaders?: Record<string, string>): Promise<Response> {\r\n\t\tconst headers: Record<string, string> = { ...this.options.headers, ...extraHeaders };\r\n\r\n\t\tlet body: string | undefined = undefined;\r\n\t\tif (!disallowedBodyMethods.has(method)) {\r\n\t\t\tif (typeof data === \"object\") body = JSON.stringify(data);\r\n\t\t\telse body = String(data);\r\n\r\n\t\t\theaders[\"Content-Type\"] = \"application/json\";\r\n\t\t}\r\n\r\n\t\treturn this.options.fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`, {\r\n\t\t\tmethod: method.toUpperCase(),\r\n\t\t\theaders,\r\n\t\t\tbody\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tprivate async _multiPartRequest(endpoint: string, params: Record<string, any> = {}, method: HTTPMethod, data: FormData, extraHeaders?: Record<string, string>): Promise<Response> {\r\n\t\tconst headers = { ...this.options.headers, ...extraHeaders };\r\n\r\n\t\treturn this.options.fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`, {\r\n\t\t\tmethod: method.toUpperCase(),\r\n\t\t\theaders,\r\n\t\t\tbody: data\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction appendQuery(query: Record<string, any>): string {\r\n\tlet count = 0;\r\n\tfor (const [key, value] of Object.entries(query)) {\r\n\t\tif (value == undefined) delete query[key];\r\n\t\telse count++;\r\n\t}\r\n\r\n\treturn count > 0 ? `?${new URLSearchParams(query).toString()}` : \"\";\r\n}\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIAuditLogQuery,\r\n\tRESTGetAPIAuditLogResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AuditLogMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAuditLog(guildId: string, options?: RESTGetAPIAuditLogQuery): Promise<RESTGetAPIAuditLogResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUDIT_LOGS(guildId), options, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = AuditLogMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIAutoModerationRulesResult,\r\n\tRESTGetAPIAutoModerationRuleResult,\r\n\tRESTPostAPIAutoModerationRuleJSONBody,\r\n\tRESTPostAPIAutoModerationRuleResult,\r\n\tRESTPatchAPIAutoModerationRuleJSONBody,\r\n\tRESTPatchAPIAutoModerationRuleResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AutoModerationMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAutoModerationRules(guildId: string): Promise<RESTGetAPIAutoModerationRulesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAutoModerationRule(guildId: string, ruleId: string): Promise<RESTGetAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createAutoModerationRule(guildId: string, data: RESTPostAPIAutoModerationRuleJSONBody, reason?: string): Promise<RESTPostAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULES(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editAutoModerationRule(guildId: string, ruleId: string, data: RESTPatchAPIAutoModerationRuleJSONBody, reason?: string): Promise<RESTPatchAPIAutoModerationRuleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAutoModerationRule(guildId: string, ruleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_AUTO_MOD_RULE(guildId, ruleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n}\r\n\r\nexport = AutoModerationMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTGetAPIGatewayBotResult,\r\n\tRESTGetAPIGatewayResult,\r\n\tAPIApplication,\r\n\tRESTPatchCurrentApplicationJSONBody\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass BotMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGateway(): Promise<RESTGetAPIGatewayResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GATEWAY, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGatewayBot(): Promise<RESTGetAPIGatewayBotResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GATEWAY_BOT, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationInfo(): Promise<APIApplication> {\r\n\t\treturn this.requestHandler.request(Endpoints.OAUTH2_APPLICATION(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateApplicationInfo(data: RESTPatchCurrentApplicationJSONBody): Promise<APIApplication> {\r\n\t\treturn this.requestHandler.request(Endpoints.OAUTH2_APPLICATION(\"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n}\r\n\r\nexport = BotMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport {\r\n\ttype APITextBasedChannel,\r\n\ttype APIThreadChannel,\r\n\ttype ChannelType,\r\n\r\n\r\n\r\n\r\n\r\n\r\n\ttype RESTDeleteAPIChannelResult,\r\n\r\n\ttype RESTGetAPIChannelInvitesResult,\r\n\ttype RESTGetAPIChannelMessageReactionUsersQuery,\r\n\ttype RESTGetAPIChannelMessageReactionUsersResult,\r\n\ttype RESTGetAPIChannelMessageResult,\r\n\ttype RESTGetAPIChannelMessagesQuery,\r\n\ttype RESTGetAPIChannelMessagesResult,\r\n\ttype RESTGetAPIChannelMessagesPinsResult,\r\n\ttype RESTGetAPIChannelResult,\r\n\ttype RESTGetAPIChannelThreadMemberResult,\r\n\ttype RESTGetAPIChannelThreadMembersQuery,\r\n\ttype RESTGetAPIChannelThreadMembersResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedPrivateResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedPublicResult,\r\n\ttype RESTGetAPIChannelThreadsArchivedQuery,\r\n\ttype RESTGetAPIChannelUsersThreadsArchivedResult,\r\n\ttype RESTPatchAPIChannelJSONBody,\r\n\ttype RESTPatchAPIChannelMessageJSONBody,\r\n\ttype RESTPatchAPIChannelMessageResult,\r\n\ttype RESTPatchAPIChannelResult,\r\n\ttype RESTPostAPIChannelFollowersResult,\r\n\ttype RESTPostAPIChannelInviteJSONBody,\r\n\ttype RESTPostAPIChannelInviteResult,\r\n\ttype RESTPostAPIChannelMessageCrosspostResult,\r\n\ttype RESTPostAPIChannelMessageJSONBody,\r\n\ttype RESTPostAPIChannelMessageResult,\r\n\r\n\ttype RESTPostAPIChannelMessagesThreadsJSONBody,\r\n\ttype RESTPostAPIChannelMessagesThreadsResult,\r\n\ttype RESTPostAPIChannelThreadsJSONBody,\r\n\r\n\r\n\ttype RESTPutAPIChannelPermissionJSONBody,\r\n\r\n\r\n\r\n\ttype RESTGetAPIPollAnswerVotersQuery,\r\n\ttype RESTGetAPIPollAnswerVotersResult,\r\n\ttype RESTPostAPIPollExpireResult,\r\n\ttype RESTGetAPIChannelMessagesPinsQuery,\r\n\ttype APIGuildVoiceChannel,\r\n\tMessageReferenceType,\r\n\tMessageFlags\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type {\r\n\r\n\tRESTPostAPIAttachmentsRefreshURLsResult\r\n} from \"../Types\"\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass ChannelMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannel(channelId: string): Promise<RESTGetAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateChannel(channelId: string, data: Omit<RESTPatchAPIChannelJSONBody, \"archived\" | \"auto_archive_duration\" | \"locked\" | \"invitable\">, reason?: string): Promise<Exclude<RESTPatchAPIChannelResult, APIThreadChannel>>;\r\n\tpublic async updateChannel(channelId: string, data: Pick<RESTPatchAPIChannelJSONBody, \"archived\" | \"auto_archive_duration\" | \"locked\" | \"name\" | \"rate_limit_per_user\">, reason?: string): Promise<Extract<RESTPatchAPIChannelResult, APIThreadChannel>>;\r\n\tpublic async updateChannel(channelId: string, data: RESTPatchAPIChannelJSONBody, reason?: string): Promise<RESTPatchAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteChannel(channelId: string, reason?: string): Promise<RESTDeleteAPIChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL(channelId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelMessages(channelId: string, options: RESTGetAPIChannelMessagesQuery = { limit: 50 }): Promise<RESTGetAPIChannelMessagesResult> {\r\n\t\tif (options.around) {\r\n\t\t\tdelete options.before;\r\n\t\t\tdelete options.after;\r\n\t\t} else if (options.before) {\r\n\t\t\tdelete options.around;\r\n\t\t\tdelete options.after;\r\n\t\t} else if (options.after) {\r\n\t\t\tdelete options.before;\r\n\t\t\tdelete options.around;\r\n\t\t}\r\n\t\tif (options.limit !== undefined && (options.limit < Constants.GET_CHANNEL_MESSAGES_MIN_RESULTS || options.limit > Constants.GET_CHANNEL_MESSAGES_MAX_RESULTS)) throw new RangeError(`Amount of messages that may be requested has to be between ${Constants.GET_CHANNEL_MESSAGES_MIN_RESULTS} and ${Constants.GET_CHANNEL_MESSAGES_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelMessage(channelId: string, messageId: string): Promise<RESTGetAPIChannelMessageResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createMessage(channelId: string, data: string | RESTPostAPIChannelMessageJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPostAPIChannelMessageResult> {\r\n\t\tif (typeof data !== \"string\" && !data.content && (!data.message_reference || (data.message_reference && data.message_reference.type === MessageReferenceType.Default)) && !data.embeds && !data.sticker_ids && !data.components && !data.files && !data.poll) throw new Error(\"Missing content, message_reference type 1, embeds, sticker_ids, components, files, or poll\");\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\t\tif ((data.content || data.embeds) && data.flags && (data.flags & MessageFlags.IsComponentsV2) === MessageFlags.IsComponentsV2) throw new Error(\"The message flags was set to include IsComponentsV2, but content and/or embeds were also present. You can either have content/embeds or components v2, not both.\");\r\n\r\n\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createVoiceMessage(channelId: string, data: Buffer, audioDurationSeconds: number, waveform = \"\"): Promise<RESTPostAPIChannelMessageResult> {\r\n\r\n\t\tconst { upload_url, upload_filename } = await this.requestHandler.request(Endpoints.CHANNEL_ATTACHMENTS(channelId), {}, \"post\", \"json\", {\r\n\t\t\tfiles: [{\r\n\t\t\t\tid: \"69420\",\r\n\t\t\t\tfilename: \"voice-message.ogg\",\r\n\t\t\t\tfile_size: data.byteLength\r\n\t\t\t}]\r\n\t\t}).then(d => d.attachments[0]);\r\n\r\n\r\n\t\tawait fetch(upload_url, { method: \"PUT\", body: data });\r\n\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGES(channelId), {}, \"post\", \"json\", {\r\n\t\t\tattachments: [{\r\n\t\t\t\tid: \"42069\",\r\n\t\t\t\tuploaded_filename: upload_filename,\r\n\t\t\t\tfilename: \"voice-message.ogg\",\r\n\t\t\t\tduration_secs: audioDurationSeconds,\r\n\t\t\t\twaveform\r\n\t\t\t}],\r\n\t\t\tflags: 1 << 13\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async crosspostMessage(channelId: string, messageId: string): Promise<RESTPostAPIChannelMessageCrosspostResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_CROSSPOST(channelId, messageId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createReaction(channelId: string, messageId: string, emoji: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, \"@me\"), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteReactionSelf(channelId: string, messageId: string, emoji: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, \"@me\"), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteReaction(channelId: string, messageId: string, emoji: string, userId?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(userId ? Endpoints.CHANNEL_MESSAGE_REACTION_USER(channelId, messageId, emoji, userId) : Endpoints.CHANNEL_MESSAGE_REACTION(channelId, messageId, emoji), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getReactions(channelId: string, messageId: string, emoji: string, options?: RESTGetAPIChannelMessageReactionUsersQuery): Promise<RESTGetAPIChannelMessageReactionUsersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTION(channelId, messageId, emoji), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAllReactions(channelId: string, messageId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_REACTIONS(channelId, messageId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editMessage(channelId: string, messageId: string, data: string | RESTPatchAPIChannelMessageJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIChannelMessageResult> {\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\r\n\t\tif (data.content || data.components) data.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"patch\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE(channelId, messageId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkDeleteMessages(channelId: string, messages: Array<string>, reason?: string): Promise<void> {\r\n\t\tif (messages.length < Constants.BULK_DELETE_MESSAGES_MIN || messages.length > Constants.BULK_DELETE_MESSAGES_MAX) throw new RangeError(`Amount of messages to be deleted has to be between ${Constants.BULK_DELETE_MESSAGES_MIN} and ${Constants.BULK_DELETE_MESSAGES_MAX}`);\r\n\r\n\t\tconst oldestSnowflake = BigInt(Date.now() - 1421280000000) * (BigInt(2) ** BigInt(22));\r\n\t\tconst forbiddenMessage = messages.find(m => BigInt(m) < oldestSnowflake);\r\n\t\tif (forbiddenMessage) throw new Error(`The message ${forbiddenMessage} is older than 2 weeks and may not be deleted using the bulk delete endpoint`);\r\n\t\tconst data = { messages };\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_BULK_DELETE(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editChannelPermission(channelId: string, permissionId: string, data: RESTPutAPIChannelPermissionJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PERMISSION(channelId, permissionId), {}, \"put\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelInvites(channelId: string): Promise<RESTGetAPIChannelInvitesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createChannelInvite(channelId: string, data: RESTPostAPIChannelInviteJSONBody & { target_users?: Array<string>; role_ids?: Array<string> } = { max_age: 86400, max_uses: 0, temporary: false, unique: false }, reason?: string): Promise<RESTPostAPIChannelInviteResult> {\r\n\t\tconst targetUsers = data?.target_users;\r\n\r\n\t\tif (targetUsers?.length) {\r\n\t\t\tdelete data.target_users;\r\n\t\t\tconst form = new FormData();\r\n\r\n\t\t\tawait Constants.standardAddToFormHandler(form, \"target_users_file\", `Users\\n${targetUsers.join(\",\\n\")},`, \"target_users_file.csv\");\r\n\t\t\tform.append(\"payload_json\", JSON.stringify(data));\r\n\t\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"post\", \"multipart\", form, Constants.reasonHeader(reason));\r\n\t\t}\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_INVITES(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteChannelPermission(channelId: string, permissionId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PERMISSION(channelId, permissionId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async followAnnouncementChannel(channelId: string, webhookChannelId: string, reason?: string): Promise<RESTPostAPIChannelFollowersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_FOLLOWERS(channelId), {}, \"post\", \"json\", { webhook_channel_id: webhookChannelId }, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async startChannelTyping(channelId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_TYPING(channelId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelPinnedMessages(channelId: string, options?: RESTGetAPIChannelMessagesPinsQuery): Promise<RESTGetAPIChannelMessagesPinsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PINS(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addChannelPinnedMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PIN(channelId, messageId), {}, \"put\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeChannelPinnedMessage(channelId: string, messageId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_PIN(channelId, messageId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createThreadWithMessage(channelId: string, messageId: string, data: RESTPostAPIChannelMessagesThreadsJSONBody, reason?: string): Promise<RESTPostAPIChannelMessagesThreadsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_MESSAGE_THREADS(channelId, messageId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 10; }, reason?: string): Promise<APITextBasedChannel<ChannelType.AnnouncementThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 11; }, reason?: string): Promise<APITextBasedChannel<ChannelType.PublicThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: Omit<RESTPostAPIChannelThreadsJSONBody, \"type\"> & { type: 12; }, reason?: string): Promise<APITextBasedChannel<ChannelType.PrivateThread>>;\r\n\tpublic async createThreadWithoutMessage(channelId: string, data: RESTPostAPIChannelThreadsJSONBody, reason?: string): Promise<APITextBasedChannel<ChannelType.PublicThread | ChannelType.PrivateThread | ChannelType.AnnouncementThread>> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async joinThread(threadId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, \"@me\"), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addThreadMember(threadId: string, userId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async leaveThread(threadId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, \"@me\"), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeThreadMember(threadId: string, userId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getThreadMember(threadId: string, userId: string, withMember?: boolean): Promise<RESTGetAPIChannelThreadMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBER(threadId, userId), { with_member: withMember }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getThreadMembers(channelId: string, options?: RESTGetAPIChannelThreadMembersQuery): Promise<RESTGetAPIChannelThreadMembersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREAD_MEMBERS(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPublicThreads(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelThreadsArchivedPublicResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PUBLIC(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPrivateThreads(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelThreadsArchivedPrivateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PRIVATE(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelArchivedPrivateThreadsUser(channelId: string, options?: RESTGetAPIChannelThreadsArchivedQuery): Promise<RESTGetAPIChannelUsersThreadsArchivedResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_THREADS_ARCHIVED_PRIVATE_USER(channelId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async refreshAttachmentURLs(attachments: string | Array<string>): Promise<RESTPostAPIAttachmentsRefreshURLsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.ATTACHMENTS_REFRESH_URLS, {}, \"post\", \"json\", {\r\n\t\t\tattachment_urls: Array.isArray(attachments) ? attachments : [attachments]\r\n\t\t});\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getPollAnswerVoters(channelId: string, messageId: string, answerId: string, options?: RESTGetAPIPollAnswerVotersQuery): Promise<RESTGetAPIPollAnswerVotersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.POLL_ANSWER(channelId, messageId, answerId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async endPoll(channelId: string, messageId: string): Promise<RESTPostAPIPollExpireResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.POLL_EXPIRE(channelId, messageId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async setVoiceChannelStatus(channelId: string, status: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_VOICE_STATUS(channelId), {}, \"put\", \"json\", { status }, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async setVoiceChannelHangout(channelId: string, imageUrl: string, reason?: string): Promise<APIGuildVoiceChannel> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_VOICE_HANGOUT(channelId), {}, \"put\", \"json\", { url: imageUrl }, Constants.reasonHeader(reason));\r\n\t}\r\n}\r\n\r\nexport = ChannelMethods;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import Constants = require(\"../Constants\");\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\r\n\tRESTGetAPIApplicationEmojisResult,\r\n\tRESTGetAPIApplicationEmojiResult,\r\n\tRESTGetAPIGuildEmojiResult,\r\n\tRESTGetAPIGuildEmojisResult,\r\n\tRESTGetAPIGuildStickerResult,\r\n\tRESTGetAPIGuildStickersResult,\r\n\tRESTGetAPIStickerResult,\r\n\tRESTPatchAPIGuildEmojiJSONBody,\r\n\tRESTPatchAPIGuildEmojiResult,\r\n\tRESTPatchAPIGuildStickerJSONBody,\r\n\tRESTPatchAPIGuildStickerResult,\r\n\tRESTPostAPIGuildEmojiJSONBody,\r\n\tRESTPostAPIGuildEmojiResult,\r\n\tRESTPostAPIGuildStickerFormDataBody,\r\n\tRESTPostAPIGuildStickerResult,\r\n\tRESTPostAPIApplicationEmojiResult,\r\n\tRESTPostAPIApplicationEmojiJSONBody,\r\n\tRESTPatchAPIApplicationEmojiJSONBody,\r\n\tRESTPatchAPIApplicationEmojiResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Blob } from \"buffer\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass AssetsMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildEmojis(guildId: string): Promise<RESTGetAPIGuildEmojisResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJIS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildEmoji(guildId: string, emojiId: string): Promise<RESTGetAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildEmoji(guildId: string, data: RESTPostAPIGuildEmojiJSONBody, reason?: string): Promise<RESTPostAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJIS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildEmoji(guildId: string, emojiId: string, data: RESTPatchAPIGuildEmojiJSONBody, reason?: string): Promise<RESTPatchAPIGuildEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildEmoji(guildId: string, emojiId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_EMOJI(guildId, emojiId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSticker(stickerId: string): Promise<RESTGetAPIStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STICKER(stickerId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildStickers(guildId: string): Promise<RESTGetAPIGuildStickersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKERS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildSticker(guildId: string, stickerId: string): Promise<RESTGetAPIGuildStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildSticker(guildId: string, data: RESTPostAPIGuildStickerFormDataBody & { file: Buffer | Blob | File | Readable | ReadableStream; }, reason?: string): Promise<RESTPostAPIGuildStickerResult> {\r\n\t\tconst form = new FormData();\r\n\r\n\t\tfor (const [key, value] of Object.entries(data)) {\r\n\t\t\tawait Constants.standardAddToFormHandler(form, key, value);\r\n\t\t}\r\n\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKERS(guildId), {}, \"post\", \"multipart\", form, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildSticker(guildId: string, stickerId: string, data: RESTPatchAPIGuildStickerJSONBody, reason?: string): Promise<RESTPatchAPIGuildStickerResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildSticker(guildId: string, stickerId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_STICKER(guildId, stickerId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAppEmojis(appId: string): Promise<RESTGetAPIApplicationEmojisResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJIS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getAppEmoji(appId: string, emojiId: string): Promise<RESTGetAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createAppEmoji(appId: string, data: RESTPostAPIApplicationEmojiJSONBody): Promise<RESTPostAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJIS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateAppEmoji(appId: string, emojiId: string, data: RESTPatchAPIApplicationEmojiJSONBody): Promise<RESTPatchAPIApplicationEmojiResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteAppEmoji(appId: string, emojiId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_EMOJI(appId, emojiId), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = AssetsMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type {\r\n\tRESTGetAPIEntitlementsResult,\r\n\tRESTGetAPIEntitlementResult,\r\n\r\n\tRESTPostAPIEntitlementJSONBody,\r\n\tRESTPostAPIEntitlementResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass EntitlementMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getEntitlements(appId: string): Promise<RESTGetAPIEntitlementsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENTS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getEntitlement(appId: string, entitlementId: string): Promise<RESTGetAPIEntitlementResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async consumeEntitlement(appId: string, entitlementId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT_CONSUME(appId, entitlementId), {}, \"post\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createTestEntitlement(appId: string, data: RESTPostAPIEntitlementJSONBody): Promise<RESTPostAPIEntitlementResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENTS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteTestEntitlement(appId: string, entitlementId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_ENTITLEMENT(appId, entitlementId), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = EntitlementMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tAPIGuildMember,\r\n\tAPIGuildWidget,\r\n\r\n\r\n\r\n\r\n\r\n\tRESTGetAPIGuildBanResult,\r\n\tRESTGetAPIGuildBansQuery,\r\n\tRESTGetAPIGuildBansResult,\r\n\tRESTGetAPIGuildChannelsResult,\r\n\tRESTGetAPIGuildIntegrationsResult,\r\n\tRESTGetAPIGuildInvitesResult,\r\n\tRESTGetAPIGuildMemberResult,\r\n\tRESTGetAPIGuildMembersQuery,\r\n\tRESTGetAPIGuildMembersResult,\r\n\tRESTGetAPIGuildMembersSearchQuery,\r\n\tRESTGetAPIGuildMembersSearchResult,\r\n\tRESTGetAPIGuildPreviewResult,\r\n\tRESTGetAPIGuildPruneCountQuery,\r\n\tRESTGetAPIGuildPruneCountResult,\r\n\tRESTGetAPIGuildResult,\r\n\tRESTGetAPIGuildRolesResult,\r\n\tRESTGetAPIGuildThreadsResult,\r\n\tRESTGetAPIGuildVanityUrlResult,\r\n\tRESTGetAPIGuildVoiceRegionsResult,\r\n\tRESTGetAPIGuildWelcomeScreenResult,\r\n\tRESTGetAPIGuildWidgetSettingsResult,\r\n\tRESTPatchAPICurrentGuildMemberJSONBody,\r\n\tRESTPatchAPIGuildChannelPositionsJSONBody,\r\n\r\n\tRESTPatchAPIGuildJSONBody,\r\n\tRESTPatchAPIGuildMemberJSONBody,\r\n\tRESTPatchAPIGuildMemberResult,\r\n\tRESTPatchAPIGuildResult,\r\n\tRESTPatchAPIGuildRoleJSONBody,\r\n\tRESTPatchAPIGuildRolePositionsJSONBody,\r\n\tRESTPatchAPIGuildRolePositionsResult,\r\n\tRESTPatchAPIGuildRoleResult,\r\n\tRESTPatchAPIGuildVoiceStateCurrentMemberJSONBody,\r\n\r\n\tRESTPatchAPIGuildVoiceStateUserJSONBody,\r\n\r\n\tRESTPatchAPIGuildWelcomeScreenJSONBody,\r\n\tRESTPatchAPIGuildWelcomeScreenResult,\r\n\tRESTPatchAPIGuildWidgetSettingsJSONBody,\r\n\tRESTPatchAPIGuildWidgetSettingsResult,\r\n\tRESTPostAPIGuildChannelJSONBody,\r\n\tRESTPostAPIGuildChannelResult,\r\n\tRESTPostAPIGuildPruneJSONBody,\r\n\tRESTPostAPIGuildPruneResult,\r\n\tRESTPostAPIGuildRoleJSONBody,\r\n\tRESTPostAPIGuildRoleResult,\r\n\tRESTPutAPIGuildBanJSONBody,\r\n\r\n\tRESTPutAPIGuildMemberJSONBody,\r\n\tRESTPutAPIGuildMemberResult,\r\n\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuild(guildId: string, withCounts?: boolean): Promise<RESTGetAPIGuildResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD(guildId), { with_counts: withCounts }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildPreview(guildId: string): Promise<RESTGetAPIGuildPreviewResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PREVIEW(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuild(guildId: string, data: RESTPatchAPIGuildJSONBody, reason?: string): Promise<RESTPatchAPIGuildResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildChannels(guildId: string): Promise<RESTGetAPIGuildChannelsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildChannel(guildId: string, data: RESTPostAPIGuildChannelJSONBody, reason?: string): Promise<RESTPostAPIGuildChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateChannelPositions(guildId: string, data: RESTPatchAPIGuildChannelPositionsJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_CHANNELS(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async listActiveThreads(guildId: string): Promise<RESTGetAPIGuildThreadsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_THREADS_ACTIVE(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildMember(guildId: string, memberId: string): Promise<RESTGetAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildMembers(guildId: string, options?: RESTGetAPIGuildMembersQuery): Promise<RESTGetAPIGuildMembersResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBERS(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async searchGuildMembers(guildId: string, options: RESTGetAPIGuildMembersSearchQuery): Promise<RESTGetAPIGuildMembersSearchResult> {\r\n\t\tif (options.limit !== undefined && (options.limit < Constants.SEARCH_MEMBERS_MIN_RESULTS || options.limit > Constants.SEARCH_MEMBERS_MAX_RESULTS)) throw new RangeError(`Limit for searching guild members has to be between ${Constants.SEARCH_MEMBERS_MIN_RESULTS} and ${Constants.SEARCH_MEMBERS_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBERS_SEARCH(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addGuildMember(guildId: string, memberId: string, data: RESTPutAPIGuildMemberJSONBody): Promise<RESTPutAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildMember(guildId: string, memberId: string, data: RESTPatchAPIGuildMemberJSONBody, reason?: string): Promise<RESTPatchAPIGuildMemberResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateSelf(guildId: string, data: RESTPatchAPICurrentGuildMemberJSONBody, reason?: string): Promise<APIGuildMember> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, \"@me\"), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async addGuildMemberRole(guildId: string, memberId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER_ROLE(guildId, memberId, roleId), {}, \"put\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildMemberRole(guildId: string, memberId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER_ROLE(guildId, memberId, roleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildMember(guildId: string, memberId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MEMBER(guildId, memberId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildBans(guildId: string, options?: RESTGetAPIGuildBansQuery): Promise<RESTGetAPIGuildBansResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BANS(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildBan(guildId: string, memberId: string): Promise<RESTGetAPIGuildBanResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildBan(guildId: string, memberId: string, data?: RESTPutAPIGuildBanJSONBody, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"put\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildBan(guildId: string, memberId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_BAN(guildId, memberId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildRoles(guildId: string): Promise<RESTGetAPIGuildRolesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildRole(guildId: string, data?: RESTPostAPIGuildRoleJSONBody, reason?: string): Promise<RESTPostAPIGuildRoleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildRolePositions(guildId: string, data: RESTPatchAPIGuildRolePositionsJSONBody, reason?: string): Promise<RESTPatchAPIGuildRolePositionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLES(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildRole(guildId: string, roleId: string, data: RESTPatchAPIGuildRoleJSONBody, reason?: string): Promise<RESTPatchAPIGuildRoleResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLE(guildId, roleId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildRole(guildId: string, roleId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_ROLE(guildId, roleId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildPruneCount(guildId: string, options?: RESTGetAPIGuildPruneCountQuery): Promise<RESTGetAPIGuildPruneCountResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PRUNE(guildId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody & { compute_prune_count: true; }, reason?: string): Promise<RESTPostAPIGuildPruneResult & { pruned: number; }>\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody & { compute_prune_count: false; }, reason?: string): Promise<RESTPostAPIGuildPruneResult & { pruned: null; }>\r\n\tpublic async startGuildPrune(guildId: string, data: RESTPostAPIGuildPruneJSONBody, reason?: string): Promise<RESTPostAPIGuildPruneResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_PRUNE(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildVoiceRegions(guildId: string): Promise<RESTGetAPIGuildVoiceRegionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_REGIONS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildInvites(guildId: string): Promise<RESTGetAPIGuildInvitesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INVITES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildIntegrations(guildId: string): Promise<RESTGetAPIGuildIntegrationsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INTEGRATIONS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async removeGuildIntegration(guildId: string, integrationId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_INTEGRATION(guildId, integrationId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWidgetSettings(guildId: string): Promise<RESTGetAPIGuildWidgetSettingsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET_SETTINGS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateGuildWidgetSettings(guildId: string, data: Partial<RESTPatchAPIGuildWidgetSettingsJSONBody>, reason?: string): Promise<RESTPatchAPIGuildWidgetSettingsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET_SETTINGS(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWidget(guildId: string): Promise<APIGuildWidget> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WIDGET(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildVanityURL(guildId: string): Promise<RESTGetAPIGuildVanityUrlResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VANITY(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWelcomeScreen(guildId: string): Promise<RESTGetAPIGuildWelcomeScreenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WELCOME_SCREEN(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildWelcomeScreen(guildId: string, data: RESTPatchAPIGuildWelcomeScreenJSONBody, reason?: string): Promise<RESTPatchAPIGuildWelcomeScreenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WELCOME_SCREEN(guildId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateCurrentUserVoiceState(guildId: string, data: RESTPatchAPIGuildVoiceStateCurrentMemberJSONBody): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_STATE_USER(guildId, \"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateUserVoiceState(guildId: string, userId: string, data: RESTPatchAPIGuildVoiceStateUserJSONBody): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_VOICE_STATE_USER(guildId, userId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async searchGuildMessages(guildId: string, query?: Record<string, any>): Promise<any> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_MESSAGES_SEARCH(guildId), query, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = GuildMethods;\r\n\r\n\r\n\r\n\r\n\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPIGuildScheduledEventResult,\r\n\tRESTGetAPIGuildScheduledEventUsersQuery,\r\n\tRESTGetAPIGuildScheduledEventUsersResult,\r\n\tRESTGetAPIGuildScheduledEventsResult,\r\n\tRESTPatchAPIGuildScheduledEventJSONBody,\r\n\tRESTPatchAPIGuildScheduledEventResult,\r\n\tRESTPostAPIGuildScheduledEventJSONBody,\r\n\tRESTPostAPIGuildScheduledEventResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildScheduledEventMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async listGuildScheduledEvents(guildId: string, withCounts?: boolean): Promise<RESTGetAPIGuildScheduledEventsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENTS(guildId), { with_user_count: withCounts }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildScheduledEvent(guildId: string, data: RESTPostAPIGuildScheduledEventJSONBody, reason?: string): Promise<RESTPostAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENTS(guildId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildScheduledEvent(guildId: string, eventId: string, withCounts?: boolean): Promise<RESTGetAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"get\", \"json\", { with_user_count: withCounts });\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildScheduledEvent(guildId: string, eventId: string, data: RESTPatchAPIGuildScheduledEventJSONBody, reason?: string): Promise<RESTPatchAPIGuildScheduledEventResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildScheduledEvent(guildId: string, eventId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT(guildId, eventId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildScheduledEventUsers(guildId: string, eventId: string, options?: RESTGetAPIGuildScheduledEventUsersQuery): Promise<RESTGetAPIGuildScheduledEventUsersResult> {\r\n\t\tif (options?.limit !== undefined && (options.limit < Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS || options.limit > Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS)) throw new RangeError(`The maximum amount of users that may be requested has to be between ${Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS} and ${Constants.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS}`);\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_SCHEDULED_EVENT_USERS(guildId, eventId), options, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = GuildScheduledEventMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTDeleteAPIGuildTemplateResult,\r\n\tRESTGetAPIGuildTemplatesResult,\r\n\tRESTGetAPITemplateResult,\r\n\tRESTPatchAPIGuildTemplateJSONBody,\r\n\tRESTPatchAPIGuildTemplateResult,\r\n\tRESTPostAPIGuildTemplatesJSONBody,\r\n\tRESTPostAPIGuildTemplatesResult,\r\n\tRESTPutAPIGuildTemplateSyncResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass GuildTemplateMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildTemplate(code: string): Promise<RESTGetAPITemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.TEMPLATE(code), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildTemplates(guildId: string): Promise<RESTGetAPIGuildTemplatesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATES(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildTemplate(guildId: string, data: RESTPostAPIGuildTemplatesJSONBody): Promise<RESTPostAPIGuildTemplatesResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATES(guildId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async syncGuildTemplate(guildId: string, code: string): Promise<RESTPutAPIGuildTemplateSyncResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"put\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async modifyGuildTemplate(guildId: string, code: string, data: RESTPatchAPIGuildTemplateJSONBody): Promise<RESTPatchAPIGuildTemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildTemplate(guildId: string, code: string): Promise<RESTDeleteAPIGuildTemplateResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_TEMPLATE(guildId, code), {}, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = GuildTemplateMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type WHM = require(\"./Webhook\");\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport {\r\n\tInteractionResponseType,\r\n\r\n\r\n\ttype RESTGetAPIApplicationCommandPermissionsResult,\r\n\ttype RESTGetAPIApplicationCommandResult,\r\n\ttype RESTGetAPIApplicationCommandsResult,\r\n\ttype RESTGetAPIApplicationGuildCommandResult,\r\n\ttype RESTGetAPIApplicationGuildCommandsResult,\r\n\ttype RESTGetAPIInteractionFollowupResult,\r\n\ttype RESTGetAPIInteractionOriginalResponseResult,\r\n\ttype RESTPatchAPIApplicationCommandJSONBody,\r\n\ttype RESTPatchAPIApplicationCommandResult,\r\n\ttype RESTPatchAPIApplicationGuildCommandJSONBody,\r\n\ttype RESTPatchAPIApplicationGuildCommandResult,\r\n\ttype RESTPatchAPIInteractionFollowupJSONBody,\r\n\ttype RESTPatchAPIInteractionFollowupResult,\r\n\ttype RESTPatchAPIInteractionOriginalResponseJSONBody,\r\n\ttype RESTPatchAPIInteractionOriginalResponseResult,\r\n\ttype RESTPostAPIApplicationCommandsJSONBody,\r\n\ttype RESTPostAPIApplicationCommandsResult,\r\n\ttype RESTPostAPIApplicationGuildCommandsJSONBody,\r\n\ttype RESTPostAPIApplicationGuildCommandsResult,\r\n\ttype RESTPostAPIInteractionCallbackJSONBody,\r\n\ttype RESTPostAPIInteractionFollowupJSONBody,\r\n\ttype RESTPostAPIInteractionFollowupResult,\r\n\ttype RESTPutAPIApplicationCommandPermissionsJSONBody,\r\n\ttype RESTPutAPIApplicationCommandPermissionsResult,\r\n\ttype RESTPutAPIApplicationCommandsJSONBody,\r\n\ttype RESTPutAPIApplicationCommandsResult,\r\n\ttype RESTPutAPIApplicationGuildCommandsJSONBody,\r\n\ttype RESTPutAPIApplicationGuildCommandsResult\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass InteractionMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public readonly webhooks: WHM, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationCommands(appId: string, withLocalizations?: boolean): Promise<RESTGetAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), { with_localizations: withLocalizations }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createApplicationCommand(appId: string, data: RESTPostAPIApplicationCommandsJSONBody): Promise<RESTPostAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationCommand(appId: string, cmdId: string): Promise<RESTGetAPIApplicationCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editApplicationCommand(appId: string, cmdId: string, data: RESTPatchAPIApplicationCommandJSONBody): Promise<RESTPatchAPIApplicationCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteApplicationCommand(appId: string, cmdId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMAND(appId, cmdId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkOverwriteApplicationCommands(appId: string, data: RESTPutAPIApplicationCommandsJSONBody): Promise<RESTPutAPIApplicationCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_COMMANDS(appId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommands(appId: string, guildId: string, withLocalizations?: boolean): Promise<RESTGetAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), { with_localizations: withLocalizations }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGuildApplicationCommand(appId: string, guildId: string, data: RESTPostAPIApplicationGuildCommandsJSONBody): Promise<RESTPostAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommand(appId: string, guildId: string, cmdId: string): Promise<RESTGetAPIApplicationGuildCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildApplicationCommand(appId: string, guildId: string, cmdId: string, data: RESTPatchAPIApplicationGuildCommandJSONBody): Promise<RESTPatchAPIApplicationGuildCommandResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteGuildApplicationCommand(appId: string, guildId: string, cmdId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND(appId, guildId, cmdId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async bulkOverwriteGuildApplicationCommands(appId: string, guildId: string, data: RESTPutAPIApplicationGuildCommandsJSONBody): Promise<RESTPutAPIApplicationGuildCommandsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS(appId, guildId), {}, \"put\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string): Promise<Array<RESTGetAPIApplicationCommandPermissionsResult>>;\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId: string): Promise<RESTGetAPIApplicationCommandPermissionsResult>;\r\n\tpublic async getGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId?: string): Promise<Array<RESTGetAPIApplicationCommandPermissionsResult> | RESTGetAPIApplicationCommandPermissionsResult> {\r\n\t\tif (cmdId) return this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId, guildId, cmdId), {}, \"get\", \"json\");\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMANDS_PERMISSIONS(appId, guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editGuildApplicationCommandPermissions(appId: string, guildId: string, cmdId: string, permissions: RESTPutAPIApplicationCommandPermissionsJSONBody[\"permissions\"]): Promise<RESTPutAPIApplicationCommandPermissionsResult> {\r\n\t\tconst payload = { permissions: permissions };\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId, guildId, cmdId), {}, \"put\", \"json\", payload);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createInteractionResponse(interactionId: string, token: string, data: RESTPostAPIInteractionCallbackJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<void> {\r\n\t\tif ((\r\n\t\t\tdata.type === InteractionResponseType.ChannelMessageWithSource ||\r\n\t\t\tdata.type === InteractionResponseType.UpdateMessage\r\n\t\t) && data.data) data.data.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.INTERACTION_CALLBACK(interactionId, token), {}, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.INTERACTION_CALLBACK(interactionId, token), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getOriginalInteractionResponse(appId: string, token: string): Promise<RESTGetAPIInteractionOriginalResponseResult> {\r\n\t\treturn this.webhooks.getWebhookMessage(appId, token, \"@original\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editOriginalInteractionResponse(appId: string, token: string, data: RESTPatchAPIInteractionOriginalResponseJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream }> }): Promise<RESTPatchAPIInteractionOriginalResponseResult> {\r\n\t\treturn this.webhooks.editWebhookMessage(appId, token, \"@original\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteOriginalInteractionResponse(appId: string, token: string): Promise<void> {\r\n\t\treturn this.webhooks.deleteWebhookMessage(appId, token, \"@original\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createFollowupMessage(appId: string, token: string, data: RESTPostAPIInteractionFollowupJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPostAPIInteractionFollowupResult> {\r\n\r\n\t\treturn this.webhooks.executeWebhook(appId, token, data) as unknown as Promise<RESTPostAPIInteractionFollowupResult>;\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getFollowupMessage(appId: string, token: string, messageId: string): Promise<RESTGetAPIInteractionFollowupResult> {\r\n\t\treturn this.webhooks.getWebhookMessage(appId, token, messageId);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editFollowupMessage(appId: string, token: string, messageId: string, data: RESTPatchAPIInteractionFollowupJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIInteractionFollowupResult> {\r\n\t\treturn this.webhooks.editWebhookMessage(appId, token, messageId, data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteFollowupMessage(appId: string, token: string, messageId: string): Promise<void> {\r\n\t\treturn this.webhooks.deleteWebhookMessage(appId, token, messageId);\r\n\t}\r\n}\r\n\r\nexport = InteractionMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\tRESTDeleteAPIInviteResult,\r\n\tRESTGetAPIInviteQuery,\r\n\tRESTGetAPIInviteResult\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type {\r\n\tRESTGetAPIInviteTargetUsers,\r\n\tRESTGetAPIInviteTargetUsersJobStatus,\r\n\r\n} from \"../Types\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass InviteMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInvite(inviteId: string, options?: RESTGetAPIInviteQuery): Promise<RESTGetAPIInviteResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITES(inviteId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteInvite(inviteId: string, reason?: string): Promise<RESTDeleteAPIInviteResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITES(inviteId), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInviteTargetUsers(inviteId: string): Promise<RESTGetAPIInviteTargetUsers> {\r\n\t\tconst response = await this.requestHandler.request(Endpoints.INVITE_TARGET_USERS(inviteId), {}, \"get\", \"json\", undefined, undefined, this.requestHandler.options.retryLimit, true) as Response;\r\n\t\tlet b: string;\r\n\t\ttry {\r\n\t\t\tb = await response.text();\r\n\t\t} catch {\r\n\t\t\tb = \"\";\r\n\t\t}\r\n\t\tif (!b.length) return [];\r\n\t\treturn b.split(\"\\n\").slice(1).map(l => l.replace(\",\", \"\").trim());\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateInviteTargetUsers(inviteId: string, userIds: Array<string>): Promise<void> {\r\n\t\tconst csv = `Users\\n${userIds.join(\",\\n\")},`;\r\n\t\tconst form = new FormData();\r\n\t\tawait Constants.standardAddToFormHandler(form, \"target_users_file\", csv, \"target_users_file.csv\");\r\n\t\treturn this.requestHandler.request(Endpoints.INVITE_TARGET_USERS(inviteId), { target_users_file: \"target_users_file.csv\" }, \"put\", \"multipart\", form);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getInviteTargetUsersJobStatus(inviteId: string): Promise<RESTGetAPIInviteTargetUsersJobStatus> {\r\n\t\treturn this.requestHandler.request(Endpoints.INVITE_TARGET_USERS_JOB_STATUS(inviteId), {}, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = InviteMethods;\r\n","import type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport Endpoints = require(\"../Endpoints\");\r\n\r\nimport type {\r\n\tRESTGetAPISKUsResult,\r\n\tRESTGetAPISKUSubscriptionsQuery,\r\n\tRESTGetAPISKUSubscriptionsResult,\r\n\tRESTGetAPISKUSubscriptionResult,\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass SkuMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async GetSkus(appId: string): Promise<RESTGetAPISKUsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.APPLICATION_SKUS(appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSubscriptions(skuId: string, options: RESTGetAPISKUSubscriptionsQuery = {}): Promise<RESTGetAPISKUSubscriptionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.SKU_SUBSCRIPTIONS(skuId), options, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSubscription(skuId: string, subscriptionId: string): Promise<RESTGetAPISKUSubscriptionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.SKU_SUBSCRIPTION(skuId, subscriptionId), {}, \"get\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = SkuMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPIStageInstanceResult,\r\n\tRESTPatchAPIStageInstanceJSONBody,\r\n\tRESTPatchAPIStageInstanceResult,\r\n\tRESTPostAPIStageInstanceJSONBody,\r\n\tRESTPostAPIStageInstanceResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass StageInstanceMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createStageInstance(data: RESTPostAPIStageInstanceJSONBody, reason?: string): Promise<RESTPostAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCES, {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getStageInstance(channelId: string): Promise<RESTGetAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editStageInstance(channelId: string, data: RESTPatchAPIStageInstanceJSONBody, reason?: string): Promise<RESTPatchAPIStageInstanceResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteStageInstance(channelId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.STAGE_INSTANCE_CHANNEL(channelId), {}, \"delete\", \"json\", {}, Constants.reasonHeader(reason));\r\n\t}\r\n}\r\n\r\nexport = StageInstanceMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type {\r\n\r\n\tRESTGetAPICurrentUserApplicationRoleConnectionResult,\r\n\tRESTGetAPICurrentUserConnectionsResult,\r\n\tRESTGetAPICurrentUserGuildsQuery,\r\n\tRESTGetAPICurrentUserGuildsResult,\r\n\tRESTGetAPICurrentUserResult,\r\n\tRESTGetAPIUserResult,\r\n\tRESTPatchAPICurrentUserJSONBody,\r\n\tRESTPatchAPICurrentUserResult,\r\n\tRESTPostAPICurrentUserCreateDMChannelResult,\r\n\tRESTPutAPICurrentUserApplicationRoleConnectionJSONBody,\r\n\tRESTPutAPICurrentUserApplicationRoleConnectionResult\r\n} from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass UserMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getSelf(): Promise<RESTGetAPICurrentUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getUser(userId: string): Promise<RESTGetAPIUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(userId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateSelf(data: RESTPatchAPICurrentUserJSONBody): Promise<RESTPatchAPICurrentUserResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER(\"@me\"), {}, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuilds(options?: RESTGetAPICurrentUserGuildsQuery): Promise<RESTGetAPICurrentUserGuildsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILDS(\"@me\"), {}, \"get\", \"json\", options);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async leaveGuild(guildId: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD(\"@me\", guildId), {}, \"delete\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createDirectMessageChannel(userId: string): Promise<RESTPostAPICurrentUserCreateDMChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CHANNELS(\"@me\"), {}, \"post\", \"json\", { recipient_id: userId });\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createGroupDirectMessageChannel(data: { access_tokens: Array<string>; nicks?: { [userId: string]: string } }): Promise<RESTPostAPICurrentUserCreateDMChannelResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CHANNELS(\"@me\"), {}, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getConnections(): Promise<RESTGetAPICurrentUserConnectionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_CONNECTIONS(\"@me\"), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getApplicationRoleConnection(appId: string): Promise<RESTGetAPICurrentUserApplicationRoleConnectionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_APPLICATION_ROLE_CONNECTION(\"@me\", appId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateApplicationRoleConnection(appId: string, data: RESTPutAPICurrentUserApplicationRoleConnectionJSONBody): Promise<RESTPutAPICurrentUserApplicationRoleConnectionResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_APPLICATION_ROLE_CONNECTION(\"@me\", appId), {}, \"put\", \"json\", data);\r\n\t}\r\n}\r\n\r\nexport = UserMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\n\r\nimport type { RESTGetAPIVoiceRegionsResult, APIVoiceState } from \"discord-api-types/v10\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass VoiceMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getVoiceRegions(): Promise<RESTGetAPIVoiceRegionsResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.VOICE_REGIONS, {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getCurrentUserVoiceState(guildId: string): Promise<APIVoiceState> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD_VOICE_STATE(guildId, \"@me\"), {}, \"get\", \"json\")\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getUserVoiceState(guildId: string, userId: string): Promise<APIVoiceState> {\r\n\t\treturn this.requestHandler.request(Endpoints.USER_GUILD_VOICE_STATE(guildId, userId), {}, \"get\", \"json\")\r\n\t}\r\n}\r\n\r\nexport = VoiceMethods;\r\n","import Endpoints = require(\"../Endpoints\");\r\nimport Constants = require(\"../Constants\");\r\n\r\nimport type { RequestHandler as RH } from \"../RequestHandler\";\r\nimport type ST = require(\"../SnowTransfer\");\r\n\r\nimport {\r\n\r\n\r\n\ttype RESTGetAPIChannelWebhooksResult,\r\n\ttype RESTGetAPIGuildWebhooksResult,\r\n\ttype RESTGetAPIWebhookResult,\r\n\ttype RESTGetAPIWebhookWithTokenMessageResult,\r\n\ttype RESTPatchAPIWebhookJSONBody,\r\n\ttype RESTPatchAPIWebhookResult,\r\n\ttype RESTPatchAPIWebhookWithTokenJSONBody,\r\n\ttype RESTPatchAPIWebhookWithTokenMessageJSONBody,\r\n\ttype RESTPatchAPIWebhookWithTokenMessageResult,\r\n\ttype RESTPatchAPIWebhookWithTokenResult,\r\n\ttype RESTPostAPIChannelWebhookJSONBody,\r\n\ttype RESTPostAPIChannelWebhookResult,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubQuery,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubResult,\r\n\ttype RESTPostAPIWebhookWithTokenGitHubWaitResult,\r\n\ttype RESTPostAPIWebhookWithTokenJSONBody,\r\n\ttype RESTPostAPIWebhookWithTokenQuery,\r\n\ttype RESTPostAPIWebhookWithTokenResult,\r\n\ttype RESTPostAPIWebhookWithTokenSlackQuery,\r\n\ttype RESTPostAPIWebhookWithTokenSlackResult,\r\n\ttype RESTPostAPIWebhookWithTokenSlackWaitResult,\r\n\ttype RESTPostAPIWebhookWithTokenWaitResult,\r\n\r\n\tMessageFlags\r\n} from \"discord-api-types/v10\";\r\n\r\nimport type { Readable } from \"stream\";\r\nimport type { ReadableStream } from \"stream/web\";\r\n\r\n\r\n\r\n\r\n\r\n\r\nclass WebhookMethods {\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(public readonly requestHandler: RH, public options: ST.Options) {}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async createWebhook(channelId: string, data: RESTPostAPIChannelWebhookJSONBody, reason?: string): Promise<RESTPostAPIChannelWebhookResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_WEBHOOKS(channelId), {}, \"post\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getChannelWebhooks(channelId: string): Promise<RESTGetAPIChannelWebhooksResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.CHANNEL_WEBHOOKS(channelId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getGuildWebhooks(guildId: string): Promise<RESTGetAPIGuildWebhooksResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.GUILD_WEBHOOKS(guildId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getWebhook(webhookId: string, token?: string): Promise<RESTGetAPIWebhookResult> {\r\n\t\tif (token) return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"get\", \"json\");\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateWebhook(webhookId: string, data: RESTPatchAPIWebhookJSONBody, reason?: string): Promise<RESTPatchAPIWebhookResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async updateWebhookToken(webhookId: string, token: string, data: RESTPatchAPIWebhookWithTokenJSONBody, reason?: string): Promise<RESTPatchAPIWebhookWithTokenResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"patch\", \"json\", data, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhook(webhookId: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK(webhookId), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhookToken(webhookId: string, token: string, reason?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), {}, \"delete\", \"json\", undefined, Constants.reasonHeader(reason));\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options?: RESTPostAPIWebhookWithTokenQuery & { wait?: false, disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenResult>;\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options: RESTPostAPIWebhookWithTokenQuery & { wait: true, disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenWaitResult>;\r\n\tpublic async executeWebhook(webhookId: string, token: string, data: RESTPostAPIWebhookWithTokenJSONBody & { files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }, options?: RESTPostAPIWebhookWithTokenQuery & { disableEveryone?: boolean; }): Promise<RESTPostAPIWebhookWithTokenResult | RESTPostAPIWebhookWithTokenWaitResult> {\r\n\t\tif (typeof data !== \"string\" && !data.content && !data.embeds && !data.components && !data.files && !data.poll) throw new Error(\"Missing content, embeds, components, files, or poll\");\r\n\t\tif (typeof data === \"string\") data = { content: data };\r\n\r\n\t\tconst hasComponentsV2 = (!!data.flags && (data.flags & MessageFlags.IsComponentsV2) === MessageFlags.IsComponentsV2)\r\n\r\n\t\tif ((data.content || data.embeds) && data.flags && (hasComponentsV2)) throw new Error(\"The message flags was set to include IsComponentsV2, but content and/or embeds were also present. You can either have content/embeds or components v2, not both.\");\r\n\r\n\r\n\t\tif (options) delete options.disableEveryone;\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(`${Endpoints.WEBHOOK_TOKEN(webhookId, token)}`, options, \"post\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery & { wait?: false }): Promise<RESTPostAPIWebhookWithTokenSlackResult>\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery & { wait: true }): Promise<RESTPostAPIWebhookWithTokenSlackWaitResult>\r\n\tpublic async executeWebhookSlack(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenSlackQuery): Promise<RESTPostAPIWebhookWithTokenSlackResult | RESTPostAPIWebhookWithTokenSlackWaitResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_SLACK(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenGitHubQuery & { wait?: false }): Promise<RESTPostAPIWebhookWithTokenGitHubResult>\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options?: RESTPostAPIWebhookWithTokenGitHubQuery & { wait: true }): Promise<RESTPostAPIWebhookWithTokenGitHubWaitResult>\r\n\tpublic async executeWebhookGitHub(webhookId: string, token: string, data: any, options: RESTPostAPIWebhookWithTokenGitHubQuery = {}): Promise<RESTPostAPIWebhookWithTokenGitHubResult | RESTPostAPIWebhookWithTokenGitHubWaitResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_GITHUB(webhookId, token), options, \"post\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async getWebhookMessage(webhookId: string, token: string, messageId: string, threadId?: string): Promise<RESTGetAPIWebhookWithTokenMessageResult> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"get\", \"json\");\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async editWebhookMessage(webhookId: string, token: string, messageId: string, data: RESTPatchAPIWebhookWithTokenMessageJSONBody & { thread_id?: string; files?: Array<{ name: string; file: Buffer | Readable | ReadableStream; }> }): Promise<RESTPatchAPIWebhookWithTokenMessageResult> {\r\n\t\tlet threadId: string | undefined = undefined;\r\n\t\tif (data.thread_id) threadId = data.thread_id;\r\n\t\tdelete data.thread_id;\r\n\r\n\t\tdata.allowed_mentions ??= this.options.allowed_mentions;\r\n\r\n\t\tif (data.files) return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"patch\", \"multipart\", await Constants.standardMultipartHandler(data as Parameters<typeof Constants[\"standardMultipartHandler\"]>[\"0\"]));\r\n\t\telse return this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"patch\", \"json\", data);\r\n\t}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic async deleteWebhookMessage(webhookId: string, token: string, messageId: string, threadId?: string): Promise<void> {\r\n\t\treturn this.requestHandler.request(Endpoints.WEBHOOK_TOKEN_MESSAGE(webhookId, token, messageId), { thread_id: threadId }, \"delete\", \"json\");\r\n\t}\r\n}\r\n\r\nexport = WebhookMethods;\r\n","import type { RESTPostOAuth2AccessTokenResult } from \"discord-api-types/v10\";\r\n\r\nimport Endpoints = require(\"./Endpoints\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nasync function getOauth2Token(clientId: string, redirectURI: string, clientSecret: string, code: string): Promise<RESTPostOAuth2AccessTokenResult> {\r\n\tconst response = await fetch(`${Endpoints.BASE_HOST}${Endpoints.OAUTH2_TOKEN}`, {\r\n\t\tmethod: \"POST\",\r\n\t\tbody: new URLSearchParams({\r\n\t\t\tgrant_type: \"authorization_code\",\r\n\t\t\tcode,\r\n\t\t\tclient_id: clientId,\r\n\t\t\tclient_secret: clientSecret,\r\n\t\t\tredirect_uri: redirectURI\r\n\t\t})\r\n\t});\r\n\treturn response.json() as Promise<RESTPostOAuth2AccessTokenResult>;\r\n}\r\n\r\nexport = {\r\n\tgetOauth2Token\r\n}\r\n","import { Ratelimiter, RequestHandler } from \"./RequestHandler\";\r\nimport AssetsMethods = require(\"./methods/Assets\");\r\nimport AuditLogMethods = require(\"./methods/AuditLog\");\r\nimport AutoModerationMethods = require(\"./methods/AutoModeration\");\r\nimport BotMethods = require(\"./methods/Bot\");\r\nimport ChannelMethods = require(\"./methods/Channel\");\r\nimport EntitlementMethods = require(\"./methods/Entitlements\");\r\nimport GuildMethods = require(\"./methods/Guild\");\r\nimport GuildScheduledEventMethods = require(\"./methods/GuildScheduledEvent\");\r\nimport GuildTemplateMethods = require(\"./methods/GuildTemplate\");\r\nimport InteractionMethods = require(\"./methods/Interaction\");\r\nimport InviteMethods = require(\"./methods/Invite\");\r\nimport SkuMethods = require(\"./methods/Sku\");\r\nimport StageInstanceMethods = require(\"./methods/StageInstance\");\r\nimport UserMethods = require(\"./methods/User\");\r\nimport VoiceMethods = require(\"./methods/Voice\");\r\nimport WebhookMethods = require(\"./methods/Webhook\");\r\nimport Endpoints = require(\"./Endpoints\");\r\nimport Constants = require(\"./Constants\");\r\n\r\nimport type { APIAllowedMentions } from 'discord-api-types/v10';\r\n\r\nnamespace SnowTransfer {\r\n\texport type Options = {\r\n\r\n\t\tbaseHost: string;\r\n\r\n\t\tallowed_mentions: APIAllowedMentions | undefined;\r\n\r\n\t\tbypassBuckets: boolean;\r\n\r\n\t\tretryRequests: boolean;\r\n\r\n\t\tretryLimit: number;\r\n\t};\r\n}\r\n\r\n\r\n\r\n\r\n\r\nclass SnowTransfer {\r\n\r\n\tpublic options: SnowTransfer.Options;\r\n\r\n\tpublic token: string | undefined;\r\n\r\n\tpublic readonly channel: ChannelMethods;\r\n\r\n\tpublic readonly requestHandler: RequestHandler;\r\n\r\n\tpublic readonly user: UserMethods;\r\n\r\n\tpublic readonly assets: AssetsMethods;\r\n\r\n\tpublic readonly webhook: WebhookMethods;\r\n\r\n\tpublic readonly guild: GuildMethods;\r\n\r\n\tpublic readonly guildScheduledEvent: GuildScheduledEventMethods;\r\n\r\n\tpublic readonly guildTemplate: GuildTemplateMethods;\r\n\r\n\tpublic readonly interaction: InteractionMethods;\r\n\r\n\tpublic readonly invite: InviteMethods;\r\n\r\n\tpublic readonly voice: VoiceMethods;\r\n\r\n\tpublic readonly bot: BotMethods;\r\n\r\n\tpublic readonly auditLog: AuditLogMethods;\r\n\r\n\tpublic readonly stageInstance: StageInstanceMethods;\r\n\r\n\tpublic readonly autoMod: AutoModerationMethods;\r\n\r\n\tpublic readonly entitlement: EntitlementMethods;\r\n\r\n\tpublic readonly sku: SkuMethods;\r\n\r\n\tpublic readonly ratelimiter: Ratelimiter;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\tpublic constructor(token?: string, options?: Partial<SnowTransfer.Options>) {\r\n\t\tif (typeof token === \"string\" && token === \"\") throw new Error(\"Missing token\");\r\n\t\tif (token && (!token.startsWith(\"Bot\") && !token.startsWith(\"Bearer\"))) token = `Bot ${token}`;\r\n\t\tthis.options = { baseHost: Endpoints.BASE_HOST, allowed_mentions: undefined, bypassBuckets: false, retryRequests: false, retryLimit: Constants.DEFAULT_RETRY_LIMIT, ...options };\r\n\t\tthis.token = token;\r\n\t\tthis.ratelimiter = new Ratelimiter();\r\n\t\tthis.requestHandler = new RequestHandler(this.ratelimiter, {\r\n\t\t\ttoken: this.token,\r\n\t\t\tbaseHost: this.options.baseHost,\r\n\t\t\tbypassBuckets: this.options.bypassBuckets,\r\n\t\t\tretryFailed: this.options.retryRequests,\r\n\t\t\tretryLimit: this.options.retryLimit\r\n\t\t});\r\n\t\tthis.channel = new ChannelMethods(this.requestHandler, this.options);\r\n\t\tthis.user = new UserMethods(this.requestHandler);\r\n\t\tthis.assets = new AssetsMethods(this.requestHandler);\r\n\t\tthis.webhook = new WebhookMethods(this.requestHandler, this.options);\r\n\t\tthis.guild = new GuildMethods(this.requestHandler);\r\n\t\tthis.guildScheduledEvent = new GuildScheduledEventMethods(this.requestHandler);\r\n\t\tthis.guildTemplate = new GuildTemplateMethods(this.requestHandler);\r\n\t\tthis.interaction = new InteractionMethods(this.requestHandler, this.webhook, this.options);\r\n\t\tthis.invite = new InviteMethods(this.requestHandler);\r\n\t\tthis.voice = new VoiceMethods(this.requestHandler);\r\n\t\tthis.bot = new BotMethods(this.requestHandler);\r\n\t\tthis.auditLog = new AuditLogMethods(this.requestHandler);\r\n\t\tthis.stageInstance = new StageInstanceMethods(this.requestHandler);\r\n\t\tthis.autoMod = new AutoModerationMethods(this.requestHandler);\r\n\t\tthis.entitlement = new EntitlementMethods(this.requestHandler);\r\n\t\tthis.sku = new SkuMethods(this.requestHandler);\r\n\t}\r\n}\r\n\r\nexport = SnowTransfer;\r\n","import SM = require(\"./StateMachine\");\r\n\r\nfunction graph(stateMachine: SM) {\r\n\tstateMachine.guardNotEditable();\r\n\tlet output = \"digraph {\\n\";\r\n\toutput += \"rankdir=LR\\n\";\r\n\toutput += `${stateMachine.currentStateName}\\n`;\r\n\tfor (const [stateName, state] of stateMachine.states.entries()) {\r\n\t\tif (state.onEnter.length) {\r\n\t\t\toutput += `${stateName} [fontcolor=blue]\\n`;\r\n\t\t}\r\n\r\n\t\tfor (const [transitionName, transition] of state.transitions.entries()) {\r\n\t\t\toutput += `${stateName} -> ${transition.destination}`;\r\n\t\t\tconst attrs = [`label=\"${transitionName}\"`];\r\n\t\t\tif (transition.onTransition?.length) attrs.push(\"color=blue\", \"fontcolor=blue\");\r\n\t\t\toutput += `[${attrs.join(\" \")}]\\n`;\r\n\t\t}\r\n\t}\r\n\toutput += \"}\";\r\n\treturn output;\r\n}\r\n\r\nexport { graph };\r\n","import AuditLogMethods2 = require(\"./methods/AuditLog\");\r\nimport AutoModerationMethods2 = require(\"./methods/AutoModeration\");\r\nimport BotMethods2 = require(\"./methods/Bot\");\r\nimport ChannelMethods2 = require(\"./methods/Channel\");\r\nimport AssetsMethods2 = require(\"./methods/Assets\");\r\nimport EntitlementsMethods2 = require(\"./methods/Entitlements\");\r\nimport GuildMethods2 = require(\"./methods/Guild\");\r\nimport GuildScheduledEventMethods2 = require(\"./methods/GuildScheduledEvent\");\r\nimport GuildTemplateMethods2 = require(\"./methods/GuildTemplate\");\r\nimport InteractionMethods2 = require(\"./methods/Interaction\");\r\nimport InviteMethods2 = require(\"./methods/Invite\");\r\nimport SkuMethods2 = require(\"./methods/Sku\");\r\nimport StageInstanceMethods2 = require(\"./methods/StageInstance\");\r\nimport UserMethods2 = require(\"./methods/User\");\r\nimport VoiceMethods2 = require(\"./methods/Voice\");\r\nimport WebhookMethods2 = require(\"./methods/Webhook\");\r\n\r\nimport tokenless2 = require(\"./tokenless\");\r\n\r\nimport Constants2 = require(\"./Constants\");\r\nimport Endpoints2 = require(\"./Endpoints\");\r\nimport SnowTransfer2 = require(\"./SnowTransfer\");\r\nimport StateMachine2 = require(\"./StateMachine\");\r\nimport { graph } from \"./StateMachineGraph\";\r\nconst graphWrapped = { graph };\r\n\r\nexport * from \"./Types\";\r\nexport * from \"./RequestHandler\";\r\n\r\nexport {\r\n\tAuditLogMethods2 as AuditLogMethods,\r\n\tAutoModerationMethods2 as AutoModerationMethods,\r\n\tBotMethods2 as BotMethods,\r\n\tChannelMethods2 as ChannelMethods,\r\n\tAssetsMethods2 as AssetsMethods,\r\n\tEntitlementsMethods2 as EntitlementsMethods,\r\n\tGuildMethods2 as GuildMethods,\r\n\tGuildScheduledEventMethods2 as GuildScheduledEventMethods,\r\n\tGuildTemplateMethods2 as GuildTemplateMethods,\r\n\tInteractionMethods2 as InteractionMethods,\r\n\tInviteMethods2 as InviteMethods,\r\n\tSkuMethods2 as SkuMethods,\r\n\tStageInstanceMethods2 as StageInstanceMethods,\r\n\tUserMethods2 as UserMethods,\r\n\tVoiceMethods2 as VoiceMethods,\r\n\tWebhookMethods2 as WebhookMethods,\r\n\r\n\ttokenless2 as tokenless,\r\n\r\n\tConstants2 as Constants,\r\n\tEndpoints2 as Endpoints,\r\n\tSnowTransfer2 as SnowTransfer,\r\n\tStateMachine2 as StateMachine,\r\n\tgraphWrapped as StateMachineGraph\r\n};\r\n"]}
|