snowtransfer 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -11,18 +11,77 @@ type RESTPostAPIAttachmentsRefreshURLsResult = {
11
11
  refreshed: string;
12
12
  }>;
13
13
  };
14
+ type RatelimitInfo = {
15
+ message: string;
16
+ retry_after: number;
17
+ global: boolean;
18
+ code?: number;
19
+ };
20
+ /**
21
+ * Interface for Queue types to implement
22
+ * @since 0.12.0
23
+ */
24
+ interface Queue {
25
+ /**
26
+ * Array of functions waiting to be executed
27
+ */
28
+ calls: Array<() => any>;
29
+ /**
30
+ * If the queue is currently executing functions
31
+ */
32
+ running: boolean;
33
+ /**
34
+ * If the queue is blocked from executing functions
35
+ */
36
+ blocked: boolean;
37
+ /**
38
+ * Queue a function to be executed
39
+ * @since 0.12.0
40
+ * @param fn function to be executed
41
+ * @returns Result of the function if any
42
+ */
43
+ enqueue<T>(fn: () => T): Promise<T>;
44
+ /**
45
+ * Set if this queue should be blocked from executing functions
46
+ * @since 0.12.0
47
+ * @param blocked If this queue should be blocked from executing functions
48
+ */
49
+ setBlocked(blocked: boolean): void;
50
+ /**
51
+ * @since 0.12.0
52
+ * Drop the queue of functions
53
+ */
54
+ drop(): void;
55
+ }
14
56
  /**
15
57
  * @since 0.3.0
16
58
  */
17
59
  declare class DiscordAPIError extends Error {
18
60
  path: string;
19
- method: HTTPMethod;
61
+ method: string;
20
62
  code: number;
21
63
  httpStatus: number;
22
64
  constructor(path: string, error: {
23
65
  message?: string;
24
66
  code?: number;
25
- }, method: HTTPMethod, status: number);
67
+ }, method: string, status: number);
68
+ }
69
+ /**
70
+ * A structure to queue (async) functions to run one at a time, waiting for each one to finish before continuing
71
+ * @since 0.12.0
72
+ * @protected
73
+ */
74
+ declare class AsyncSequentialQueue implements Queue {
75
+ calls: Array<() => any>;
76
+ private _blocked;
77
+ private _running;
78
+ get blocked(): boolean;
79
+ get running(): boolean;
80
+ enqueue<T>(fn: () => T): Promise<T>;
81
+ setBlocked(blocked: boolean): void;
82
+ drop(): void;
83
+ private _tryRun;
84
+ private _next;
26
85
  }
27
86
  /**
28
87
  * Ratelimiter used for handling the ratelimits imposed by the rest api
@@ -30,36 +89,24 @@ declare class DiscordAPIError extends Error {
30
89
  * @protected
31
90
  */
32
91
  declare class Ratelimiter<B extends typeof GlobalBucket = typeof GlobalBucket> {
92
+ BucketConstructor: B;
33
93
  /**
34
- * An object of Buckets that store rate limit info
35
- */
36
- buckets: {
37
- [routeKey: string]: InstanceType<B>;
38
- };
39
- /**
40
- * If you're being globally rate limited
41
- */
42
- private _global;
43
- /**
44
- * Timeframe in milliseconds until when the global rate limit resets
94
+ * A Map of Buckets keyed by route keys that store rate limit info
45
95
  */
46
- globalReset: number;
96
+ buckets: Map<string, InstanceType<B>>;
47
97
  /**
48
- * Timeout that resets the global ratelimit once the timeframe has passed
98
+ * The bucket that limits how many requests per second you can make globally
49
99
  */
50
- globalResetTimeout: NodeJS.Timeout | null;
51
- /**
52
- * The constructor function to call new on when creating buckets to cache and use
53
- */
54
- BucketConstructor: B;
100
+ globalBucket: LocalBucket;
55
101
  /**
56
102
  * If you're being globally rate limited
57
103
  */
58
104
  get global(): boolean;
59
105
  /**
60
- * If you're being globally rate limited
106
+ * Construct a new Ratelimiter
107
+ * @param BucketConstructor The constructor function to call new on when creating buckets to cache and use
61
108
  */
62
- set global(value: boolean);
109
+ constructor(BucketConstructor?: B);
63
110
  /**
64
111
  * Returns a key for saving ratelimits for routes
65
112
  * (Taken from https://github.com/abalabahaha/eris/blob/master/lib/rest/RequestHandler.js) -> I luv u abal <3
@@ -77,6 +124,11 @@ declare class Ratelimiter<B extends typeof GlobalBucket = typeof GlobalBucket> {
77
124
  * @param method Http method used by the request
78
125
  */
79
126
  queue<T>(fn: (bucket: InstanceType<B>) => T, url: string, method: string): Promise<T>;
127
+ /**
128
+ * Set if this Ratelimiter is hitting a global ratelimit for `ms` duration
129
+ * @param ms How long in milliseconds this Ratelimiter is globally ratelimited for
130
+ */
131
+ setGlobal(ms: number): void;
80
132
  }
81
133
  /**
82
134
  * Bucket used for saving ratelimits
@@ -87,17 +139,14 @@ declare class LocalBucket {
87
139
  limit: number;
88
140
  reset: number;
89
141
  /**
90
- * Remaining amount of executions during the current timeframe
142
+ * The backing Queue of functions passed to this bucket
91
143
  */
92
- remaining: number;
144
+ queue: Queue;
93
145
  /**
94
- * array of functions waiting to be executed
95
- */
96
- fnQueue: Array<() => any>;
97
- /**
98
- * Timeout that calls the reset function once the timeframe passed
146
+ * Remaining amount of executions during the current timeframe
99
147
  */
100
- resetTimeout: NodeJS.Timeout | null;
148
+ remaining: number;
149
+ private resetTimeout;
101
150
  /**
102
151
  * Create a new base bucket
103
152
  * @param limit Number of functions that may be executed during the timeframe set in reset
@@ -107,22 +156,17 @@ declare class LocalBucket {
107
156
  constructor(limit?: number, reset?: number, remaining?: number);
108
157
  /**
109
158
  * Queue a function to be executed
110
- * @since 0.1.0
159
+ * @since 0.12.0
111
160
  * @param fn function to be executed
112
161
  * @returns Result of the function if any
113
162
  */
114
- queue<T>(fn: (bucket: this) => T): Promise<T>;
163
+ enqueue<T>(fn: (bkt: this) => T): Promise<T>;
115
164
  /**
116
165
  * Reset/make the timeout of this bucket
117
166
  * @since 0.8.3
118
- * @param durationMS Timeframe in milliseconds until the ratelimit resets after
119
- */
120
- makeResetTimeout(durationMS: number): void;
121
- /**
122
- * Check if there are any functions in the queue that haven't been executed yet
123
- * @since 0.1.0
167
+ * @param ms Timeframe in milliseconds until the ratelimit resets after
124
168
  */
125
- checkQueue(): void;
169
+ makeResetTimeout(ms: number): void;
126
170
  /**
127
171
  * Reset the remaining tokens to the base limit
128
172
  * @since 0.1.0
@@ -140,19 +184,14 @@ declare class LocalBucket {
140
184
  * @protected
141
185
  */
142
186
  declare class GlobalBucket extends LocalBucket {
143
- ratelimiter: Ratelimiter;
144
- routeKey: string;
187
+ readonly ratelimiter: Ratelimiter;
188
+ readonly routeKey: string;
145
189
  /**
146
190
  * Create a new bucket that respects global rate limits
147
191
  * @param ratelimiter ratelimiter used for ratelimiting requests. Assigned by ratelimiter
148
192
  * @param routeKey Key used internally to routify requests. Assigned by ratelimiter
149
193
  */
150
- constructor(ratelimiter: Ratelimiter, routeKey: string);
151
- /**
152
- * Check if there are any functions in the queue that haven't been executed yet
153
- * @since 0.10.0
154
- */
155
- checkQueue(): void;
194
+ constructor(ratelimiter: Ratelimiter, routeKey: string, limit?: number, reset?: number, remaining?: number);
156
195
  /**
157
196
  * Reset the remaining tokens to the base limit
158
197
  * @since 0.10.0
@@ -162,7 +201,7 @@ declare class GlobalBucket extends LocalBucket {
162
201
  type HandlerEvents = {
163
202
  request: [string, {
164
203
  endpoint: string;
165
- method: HTTPMethod;
204
+ method: string;
166
205
  dataType: "json" | "multipart";
167
206
  data: any;
168
207
  }];
@@ -172,7 +211,7 @@ type HandlerEvents = {
172
211
  timeout: number;
173
212
  remaining: number;
174
213
  limit: number;
175
- method: HTTPMethod;
214
+ method: string;
176
215
  path: string;
177
216
  route: string;
178
217
  }];
@@ -3414,6 +3453,7 @@ declare const Constants: {
3414
3453
  OK_STATUS_CODES: Set<number>;
3415
3454
  DO_NOT_RETRY_STATUS_CODES: Set<number>;
3416
3455
  DEFAULT_RETRY_LIMIT: number;
3456
+ GLOBAL_REQUESTS_PER_SECOND: number;
3417
3457
  standardMultipartHandler(data: {
3418
3458
  files: Array<{
3419
3459
  name: string;
@@ -3588,4 +3628,4 @@ declare class SnowTransfer {
3588
3628
  constructor(token?: string, options?: Partial<SnowTransfer["options"]>);
3589
3629
  }
3590
3630
 
3591
- export { AuditLogMethods, AutoModerationMethods, BotMethods, ChannelMethods, Constants, DiscordAPIError, Endpoints, GlobalBucket, GuildAssetsMethods, GuildMethods, GuildScheduledEventMethods, GuildTemplateMethods, type HTTPMethod, type HandlerEvents, InteractionMethods, InviteMethods, LocalBucket, type RESTPostAPIAttachmentsRefreshURLsResult, Ratelimiter, RequestHandler, SnowTransfer, StageInstanceMethods, UserMethods, VoiceMethods, WebhookMethods, _default as tokenless };
3631
+ export { AsyncSequentialQueue, AuditLogMethods, AutoModerationMethods, BotMethods, ChannelMethods, Constants, DiscordAPIError, Endpoints, GlobalBucket, GuildAssetsMethods, GuildMethods, GuildScheduledEventMethods, GuildTemplateMethods, type HTTPMethod, type HandlerEvents, InteractionMethods, InviteMethods, LocalBucket, type Queue, type RESTPostAPIAttachmentsRefreshURLsResult, type RatelimitInfo, Ratelimiter, RequestHandler, SnowTransfer, StageInstanceMethods, UserMethods, VoiceMethods, WebhookMethods, _default as tokenless };
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ var stream = require('stream');
5
5
  var web = require('stream/web');
6
6
  var events = require('events');
7
7
 
8
- var __getOwnPropNames=Object.getOwnPropertyNames;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0, fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var require_Constants=__commonJS({"src/Constants.ts"(exports,module){var mentionRegex=/@([^<>@ ]*)/gsmu,isValidUserMentionRegex=/^[&!]?\d+$/;function replaceEveryoneMatchProcessor(_match,target){return isValidUserMentionRegex.test(target)?`@${target}`:`@\u200B${target}`}var Constants3={REST_API_VERSION:10,GET_CHANNEL_MESSAGES_MIN_RESULTS:1,GET_CHANNEL_MESSAGES_MAX_RESULTS:100,GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS:1,GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS:100,SEARCH_MEMBERS_MIN_RESULTS:1,SEARCH_MEMBERS_MAX_RESULTS:1e3,BULK_DELETE_MESSAGES_MIN:2,BULK_DELETE_MESSAGES_MAX:100,OK_STATUS_CODES:new Set([200,201,204,304]),DO_NOT_RETRY_STATUS_CODES:new Set([401,403,404,405,411,413,429]),DEFAULT_RETRY_LIMIT:3,async standardMultipartHandler(data){let form=new FormData;if(data.files&&Array.isArray(data.files)&&data.files.every(f=>!!f.name&&!!f.file)){let index=0;for(let file of data.files)await Constants3.standardAddToFormHandler(form,`files[${index}]`,file.file,file.name),delete file.file,index++;}return data.data&&delete data.files,form.append("payload_json",JSON.stringify(data)),form},async standardAddToFormHandler(form,name,value,filename){var _a;if(value instanceof Buffer)form.append(name,new buffer.Blob([value]),filename);else if(value instanceof buffer.Blob||value instanceof buffer.File)form.append(name,value,filename);else if(value instanceof stream.Readable||value instanceof web.ReadableStream){let blob=await new Response(value instanceof web.ReadableStream?value:stream.Readable.toWeb(value)).blob();form.set(name,blob,filename);}else throw new Error(`Don't know how to add ${((_a=value==null?void 0:value.constructor)==null?void 0:_a.name)??typeof value} to form`)},replaceEveryone(content){return content.replace(mentionRegex,replaceEveryoneMatchProcessor)}};module.exports=Constants3;}});var require_Endpoints=__commonJS({"src/Endpoints.ts"(exports,module){var Constants3=require_Constants(),Endpoints3={BASE_URL:"/api/v"+Constants3.REST_API_VERSION,BASE_HOST:"https://discord.com",CDN_URL:"https://cdn.discordapp.com",APPLICATION_COMMAND:(appId,cmdId)=>`${Endpoints3.APPLICATION_COMMANDS(appId)}/${cmdId}`,APPLICATION_COMMANDS:appId=>`/applications/${appId}/commands`,APPLICATION_GUILD_COMMANDS_PERMISSIONS:(appId,guildId)=>`${Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId)}/permissions`,APPLICATION_GUILD_COMMAND_PERMISSIONS:(appId,guildId,cmdId)=>`${Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId)}/permissions`,APPLICATION_GUILD_COMMAND:(appId,guildId,cmdId)=>`${Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId)}/${cmdId}`,APPLICATION_GUILD_COMMANDS:(appId,guildId)=>`/applications/${appId}/guilds/${guildId}/commands`,ATTACHMENTS_REFRESH_URLS:"/attachments/refresh-urls",CHANNEL:chanId=>`${Endpoints3.CHANNELS}/${chanId}`,CHANNEL_ATTACHMENTS:chanId=>`${Endpoints3.CHANNEL(chanId)}/attachments`,CHANNEL_BULK_DELETE:chanId=>`${Endpoints3.CHANNEL_MESSAGES(chanId)}/bulk-delete`,CHANNEL_FOLLOWERS:chanId=>`${Endpoints3.CHANNEL(chanId)}/followers`,CHANNEL_INVITES:chanId=>`${Endpoints3.CHANNEL(chanId)}/invites`,CHANNEL_MESSAGE:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGES(chanId)}/${msgId}`,CHANNEL_MESSAGE_CROSSPOST:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/crosspost`,CHANNEL_MESSAGE_REACTION:(chanId,msgId,reaction)=>`${Endpoints3.CHANNEL_MESSAGE_REACTIONS(chanId,msgId)}/${reaction}`,CHANNEL_MESSAGE_REACTION_USER:(chanId,msgId,reaction,userId)=>`${Endpoints3.CHANNEL_MESSAGE_REACTION(chanId,msgId,reaction)}/${userId}`,CHANNEL_MESSAGE_REACTIONS:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/reactions`,CHANNEL_MESSAGE_THREADS:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/threads`,CHANNEL_MESSAGES:chanId=>`${Endpoints3.CHANNEL(chanId)}/messages`,CHANNEL_PERMISSION:(chanId,permId)=>`${Endpoints3.CHANNEL_PERMISSIONS(chanId)}/${permId}`,CHANNEL_PERMISSIONS:chanId=>`${Endpoints3.CHANNEL(chanId)}/permissions`,CHANNEL_PIN:(chanId,msgId)=>`${Endpoints3.CHANNEL_PINS(chanId)}/${msgId}`,CHANNEL_PINS:chanId=>`${Endpoints3.CHANNEL(chanId)}/pins`,CHANNEL_RECIPIENT:(chanId,userId)=>`${Endpoints3.CHANNEL(chanId)}/recipients/${userId}`,CHANNEL_THREADS:chanId=>`${Endpoints3.CHANNEL(chanId)}/threads`,CHANNEL_THREAD_MEMBER:(chanId,memberId)=>`${Endpoints3.CHANNEL_THREAD_MEMBERS(chanId)}/${memberId}`,CHANNEL_THREAD_MEMBERS:chanId=>`${Endpoints3.CHANNEL(chanId)}/thread-members`,CHANNEL_THREADS_ARCHIVED_PRIVATE:chanId=>`${Endpoints3.CHANNEL_THREADS(chanId)}/archived/private`,CHANNEL_THREADS_ARCHIVED_PRIVATE_USER:chanId=>`${Endpoints3.CHANNEL(chanId)}/users/@me/threads/archived/private`,CHANNEL_THREADS_ARCHIVED_PUBLIC:chanId=>`${Endpoints3.CHANNEL_THREADS(chanId)}/archived/public`,CHANNEL_TYPING:chanId=>`${Endpoints3.CHANNEL(chanId)}/typing`,CHANNEL_WEBHOOKS:chanId=>`${Endpoints3.CHANNEL(chanId)}/webhooks`,CHANNELS:"/channels",GATEWAY:"/gateway",GATEWAY_BOT:"/gateway/bot",GUILD:guildId=>`${Endpoints3.GUILDS}/${guildId}`,GUILD_AUDIT_LOGS:guildId=>`${Endpoints3.GUILD(guildId)}/audit-logs`,GUILD_AUTO_MOD_RULE:(guildId,ruleId)=>`${Endpoints3.GUILD_AUTO_MOD_RULES(guildId)}/${ruleId}`,GUILD_AUTO_MOD_RULES:guildId=>`${Endpoints3.GUILD(guildId)}/auto-moderation/rules`,GUILD_BAN:(guildId,memberId)=>`${Endpoints3.GUILD_BANS(guildId)}/${memberId}`,GUILD_BANS:guildId=>`${Endpoints3.GUILD(guildId)}/bans`,GUILD_CHANNELS:guildId=>`${Endpoints3.GUILD(guildId)}/channels`,GUILD_EMOJI:(guildId,emojiId)=>`${Endpoints3.GUILD_EMOJIS(guildId)}/${emojiId}`,GUILD_EMOJIS:guildId=>`${Endpoints3.GUILD(guildId)}/emojis`,GUILD_INVITES:guildId=>`${Endpoints3.GUILD(guildId)}/invites`,GUILD_INTEGRATION:(guildId,integrationId)=>`${Endpoints3.GUILD_INTEGRATIONS(guildId)}/${integrationId}`,GUILD_INTEGRATIONS:guildId=>`${Endpoints3.GUILD(guildId)}/integrations`,GUILD_MEMBER:(guildId,memberId)=>`${Endpoints3.GUILD_MEMBERS(guildId)}/${memberId}`,GUILD_MEMBER_ROLE:(guildId,memberId,roleId)=>`${Endpoints3.GUILD_MEMBER(guildId,memberId)}/roles/${roleId}`,GUILD_MEMBERS:guildId=>`${Endpoints3.GUILD(guildId)}/members`,GUILD_MEMBERS_SEARCH:guildId=>`${Endpoints3.GUILD_MEMBERS(guildId)}/search`,GUILD_PREVIEW:guildId=>`${Endpoints3.GUILD(guildId)}/preview`,GUILD_PRUNE:guildId=>`${Endpoints3.GUILD(guildId)}/prune`,GUILD_ROLE:(guildId,roleId)=>`${Endpoints3.GUILD_ROLES(guildId)}/${roleId}`,GUILD_ROLES:guildId=>`${Endpoints3.GUILD(guildId)}/roles`,GUILD_SCHEDULED_EVENTS:guildId=>`${Endpoints3.GUILD(guildId)}/scheduled-events`,GUILD_SCHEDULED_EVENT:(guildId,eventId)=>`${Endpoints3.GUILD_SCHEDULED_EVENTS(guildId)}/${eventId}`,GUILD_SCHEDULED_EVENT_USERS:(guildId,eventId)=>`${Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId)}/users`,GUILD_STICKER:(guildId,stickerId)=>`${Endpoints3.GUILD_STICKERS(guildId)}/${stickerId}`,GUILD_STICKERS:guildId=>`${Endpoints3.GUILD(guildId)}/stickers`,GUILD_TEMPLATE:(guildId,code)=>`${Endpoints3.GUILD_TEMPLATES(guildId)}/${code}`,GUILD_THREADS_ACTIVE:guildId=>`${Endpoints3.GUILD(guildId)}/threads/active`,GUILD_TEMPLATES:guildId=>`${Endpoints3.GUILD(guildId)}/templates`,GUILD_VANITY:guildId=>`${Endpoints3.GUILD(guildId)}/vanity-url`,GUILD_VOICE_REGIONS:guildId=>`${Endpoints3.GUILD(guildId)}/regions`,GUILD_VOICE_STATE_USER:(guildId,memberId)=>`${Endpoints3.GUILD(guildId)}/voice-states/${memberId}`,GUILD_WEBHOOKS:guildId=>`${Endpoints3.GUILD(guildId)}/webhooks`,GUILD_WELCOME_SCREEN:guildId=>`${Endpoints3.GUILD(guildId)}/welcome-screen`,GUILD_WIDGET:guildId=>`${Endpoints3.GUILD(guildId)}/widget.json`,GUILD_WIDGET_SETTINGS:guildId=>`${Endpoints3.GUILD(guildId)}/widget`,GUILDS:"/guilds",INTERACTION_CALLBACK:(interactionId,token)=>`/interactions/${interactionId}/${token}/callback`,INVITES:inviteId=>`/invites/${inviteId}`,OAUTH2_APPLICATION:appId=>`/oauth2/applications/${appId}`,OAUTH2_TOKEN:"/api/oauth2/token",STAGE_INSTANCE_CHANNEL:chanId=>`${Endpoints3.STAGE_INSTANCES}/${chanId}`,STAGE_INSTANCES:"/stage-instances",STICKER:stickerId=>`/stickers/${stickerId}`,TEMPLATE:code=>`/guilds/templates/${code}`,USER:userId=>`${Endpoints3.USERS}/${userId}`,USER_APPLICATION_ROLE_CONNECTION:(userId,appId)=>`${Endpoints3.USER(userId)}/applications/${appId}/role-connection`,USER_CHANNELS:userId=>`${Endpoints3.USER(userId)}/channels`,USER_CONNECTIONS:userId=>`${Endpoints3.USER(userId)}/connections`,USER_GUILD:(userId,guildId)=>`${Endpoints3.USER_GUILDS(userId)}/${guildId}`,USER_GUILDS:userId=>`${Endpoints3.USER(userId)}/guilds`,USER_GUILD_VOICE_STATE:(guildId,userId)=>`${Endpoints3.GUILD(guildId)}/voice-states/${userId}`,USERS:"/users",VOICE_REGIONS:"/voice/regions",WEBHOOK:hookId=>`/webhooks/${hookId}`,WEBHOOK_TOKEN:(hookId,token)=>`${Endpoints3.WEBHOOK(hookId)}/${token}`,WEBHOOK_TOKEN_GITHUB:(hookId,token)=>`${Endpoints3.WEBHOOK_TOKEN(hookId,token)}/github`,WEBHOOK_TOKEN_MESSAGE:(hookId,token,msgId)=>`/webhooks/${hookId}/${token}/messages/${msgId}`,WEBHOOK_TOKEN_SLACK:(hookId,token)=>`${Endpoints3.WEBHOOK_TOKEN(hookId,token)}/slack`};module.exports=Endpoints3;}});function appendQuery(query){let count=0;for(let[key,value]of Object.entries(query))value==null?delete query[key]:count++;return count>0?`?${new URLSearchParams(query).toString()}`:""}var fs,path,crypto,Endpoints,version,Constants,routeRegex,reactionsRegex,reactionsUserRegex,webhooksRegex,isMessageEndpointRegex,isGuildChannelsRegex,disallowedBodyMethods;exports.DiscordAPIError = void 0;exports.Ratelimiter = void 0;exports.LocalBucket = void 0;exports.GlobalBucket = void 0;exports.RequestHandler = void 0;var init_RequestHandler=__esm({"src/RequestHandler.ts"(){fs=__require("fs"),path=__require("path"),crypto=__require("crypto"),Endpoints=require_Endpoints(),{version}=JSON.parse(fs.readFileSync(path.join(__dirname,"../package.json"),{encoding:"utf8"})),Constants=require_Constants(),routeRegex=/\/([a-z-]+)\/(?:\d{17,19})/g,reactionsRegex=/\/reactions\/[^/]+/g,reactionsUserRegex=/\/reactions\/:id\/[^/]+/g,webhooksRegex=/^\/webhooks\/(\d+)\/[A-Za-z0-9-_]{64,}/,isMessageEndpointRegex=/\/messages\/:id$/,isGuildChannelsRegex=/\/guilds\/\d+\/channels$/,disallowedBodyMethods=new Set(["head","get","delete"]),exports.DiscordAPIError=class extends Error{constructor(path2,error,method,status){super();this.path=path2;this.method=method;this.name="DiscordAPIError",this.message=error.message??String(error),this.code=error.code??4e3,this.httpStatus=status;}},exports.Ratelimiter=class{constructor(){this.buckets={};this._global=!1;this.globalReset=0;this.globalResetTimeout=null;this.BucketConstructor=exports.GlobalBucket;}get global(){return this._global}set global(value){if(value&&this.globalReset!==0){this.globalResetTimeout&&clearTimeout(this.globalResetTimeout);let instance=this;this.globalResetTimeout=setTimeout(()=>{instance.global=!1;},this.globalReset).unref();}else {this.globalResetTimeout&&clearTimeout(this.globalResetTimeout),this.globalResetTimeout=null,this.globalReset=0;for(let bkt of Object.values(this.buckets))bkt.checkQueue();}this._global=value;}routify(url,method){let route=url.replace(routeRegex,function(match,p){return p==="channels"||p==="guilds"||p==="webhooks"?match:`/${p}/:id`}).replace(reactionsRegex,"/reactions/:id").replace(reactionsUserRegex,"/reactions/:id/:userId").replace(webhooksRegex,"/webhooks/$1/:token");if(method.toUpperCase()==="DELETE"&&isMessageEndpointRegex.test(route)?route=method+route:method.toUpperCase()==="GET"&&isGuildChannelsRegex.test(route)&&(route="/guilds/:id/channels"),method==="PUT"||method==="DELETE"){let index=route.indexOf("/reactions");index!==-1&&(route="MODIFY"+route.slice(0,index+10));}return route}queue(fn,url,method){let routeKey=this.routify(url,method);return this.buckets[routeKey]??=new this.BucketConstructor(this,routeKey),this.buckets[routeKey].queue(fn)}},exports.LocalBucket=class{constructor(limit=5,reset=5e3,remaining){this.limit=limit;this.reset=reset;this.fnQueue=[];this.resetTimeout=null;this.remaining=remaining??limit;}queue(fn){return new Promise((res,rej)=>{let wrapFn=()=>{this.remaining--,this.resetTimeout||this.makeResetTimeout(this.reset),this.remaining!==0&&setImmediate(()=>this.checkQueue());let result;try{result=fn(this);}catch(e){return rej(e)}return res(result)};this.fnQueue.push(wrapFn),this.checkQueue();})}makeResetTimeout(durationMS){this.resetTimeout&&clearTimeout(this.resetTimeout),this.resetTimeout=setTimeout(()=>this.resetRemaining(),durationMS);}checkQueue(){if(this.fnQueue.length&&this.remaining!==0){let queuedFunc=this.fnQueue.splice(0,1)[0];queuedFunc();}}resetRemaining(){this.remaining=this.limit,this.resetTimeout&&(clearTimeout(this.resetTimeout),this.resetTimeout=null),this.fnQueue.length&&this.checkQueue();}dropQueue(){this.fnQueue.length=0;}},exports.GlobalBucket=class extends exports.LocalBucket{constructor(ratelimiter,routeKey){super(5,5e3,1);this.ratelimiter=ratelimiter;this.routeKey=routeKey;}checkQueue(){this.ratelimiter.global||super.checkQueue();}resetRemaining(){this.fnQueue.length||delete this.ratelimiter.buckets[this.routeKey],super.resetRemaining();}},exports.RequestHandler=class extends events.EventEmitter{constructor(ratelimiter,options){super();this.ratelimiter=ratelimiter;this.options={baseHost:(options==null?void 0:options.baseHost)??Endpoints.BASE_HOST,baseURL:(options==null?void 0:options.baseURL)??Endpoints.BASE_URL,bypassBuckets:(options==null?void 0:options.bypassBuckets)??!1,retryFailed:(options==null?void 0:options.retryFailed)??!1,retryLimit:(options==null?void 0:options.retryLimit)??Constants.DEFAULT_RETRY_LIMIT,headers:{"User-Agent":`Discordbot (https://github.com/DasWolke/SnowTransfer, ${version}) Node.js/${process.version}`}},options!=null&&options.token&&(this.options.headers.Authorization=options.token),this.apiURL=this.options.baseHost+Endpoints.BASE_URL,this.latency=500;}request(endpoint,params={},method,dataType,data,extraHeaders,retries=this.options.retryLimit){return new Promise(async(res,rej)=>{let fn=async bkt=>{let reqId=crypto.randomBytes(20).toString("hex");try{this.emit("request",reqId,{endpoint,method,dataType,data:data??{}});let before=Date.now(),request;switch(dataType){case"json":request=await this._request(endpoint,params,method,data,extraHeaders);break;case"multipart":if(!data)throw new Error("No multipart data");request=await this._multiPartRequest(endpoint,params,method,data,extraHeaders);break;default:throw new Error("Forbidden dataType. Use json or multipart or ensure multipart has FormData")}if(this.latency=Date.now()-before,bkt&&this._applyRatelimitHeaders(bkt,request.headers),request.status&&!Constants.OK_STATUS_CODES.has(request.status)&&request.status!==429){if(this.options.retryFailed&&!Constants.DO_NOT_RETRY_STATUS_CODES.has(request.status)&&retries!==0)return this.request(endpoint,params,method,dataType,data,extraHeaders,retries--).then(res).catch(rej);throw new exports.DiscordAPIError(endpoint,{message:await request.text()},method,request.status)}if(request.status===429){if(!this.ratelimiter.global){let b=await request.json();b.reset_after!==void 0?this.ratelimiter.globalReset=b.reset_after*1e3:this.ratelimiter.globalReset=1e3,b.global!==void 0&&(this.ratelimiter.global=b.global);}throw this.emit("rateLimit",{timeout:bkt?bkt.reset:0,remaining:bkt?bkt.remaining:1/0,limit:bkt?bkt.limit:1/0,method,path:endpoint,route:bkt?bkt.routeKey:this.ratelimiter.routify(endpoint,method)}),new exports.DiscordAPIError(endpoint,{message:"You're being ratelimited",code:429},method,request.status)}if(this.emit("done",reqId,request),request.body){let b;try{b=await request.json();}catch{return res(void 0)}return res(b)}else return res(void 0)}catch(error){return this.emit("requestError",reqId,error),rej(error)}};this.options.bypassBuckets?fn():this.ratelimiter.queue(fn,endpoint,method);})}_applyRatelimitHeaders(bkt,headers){let remaining=headers.get("x-ratelimit-remaining"),limit=headers.get("x-ratelimit-limit"),resetAfter=headers.get("x-ratelimit-reset-after");remaining&&(bkt.remaining=parseInt(remaining)),limit&&(bkt.limit=parseInt(limit)),resetAfter&&(bkt.reset=parseFloat(resetAfter)*1e3,bkt.makeResetTimeout(bkt.reset));}async _request(endpoint,params={},method,data,extraHeaders){let headers={...this.options.headers,...extraHeaders};typeof data!="string"&&(data!=null&&data.reason)&&(headers["X-Audit-Log-Reason"]=encodeURIComponent(data.reason),delete data.reason);let body;return disallowedBodyMethods.has(method)||(typeof data=="object"?body=JSON.stringify(data):body=String(data)),headers["Content-Type"]="application/json",fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`,{method:method.toUpperCase(),headers,body})}async _multiPartRequest(endpoint,params={},method,data,extraHeaders){let headers={...this.options.headers,...extraHeaders};return fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`,{method:method.toUpperCase(),headers,body:data})}};}});var require_AuditLog=__commonJS({"src/methods/AuditLog.ts"(exports,module){var Endpoints3=require_Endpoints(),AuditLogMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getAuditLog(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_AUDIT_LOGS(guildId),options,"get","json")}};module.exports=AuditLogMethods;}});var require_AutoModeration=__commonJS({"src/methods/AutoModeration.ts"(exports,module){var Endpoints3=require_Endpoints(),AutoModerationMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getAutoModerationRules(guildId){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULES(guildId),{},"get","json")}async getAutoModerationRule(guildId,ruleId){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"get","json")}async createAutoModerationRule(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULES(guildId),{},"post","json",data)}async editAutoModerationRule(guildId,ruleId,data){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"patch","json",data)}async deleteAutoModerationRule(guildId,ruleId,reason){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"delete","json",{reason})}};module.exports=AutoModerationMethods;}});var require_Bot=__commonJS({"src/methods/Bot.ts"(exports,module){var Endpoints3=require_Endpoints(),BotMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}getGateway(){return this.requestHandler.request(Endpoints3.GATEWAY,{},"get","json")}getGatewayBot(){return this.requestHandler.request(Endpoints3.GATEWAY_BOT,{},"get","json")}getApplicationInfo(){return this.requestHandler.request(Endpoints3.OAUTH2_APPLICATION("@me"),{},"get","json")}};module.exports=BotMethods;}});var require_Channel=__commonJS({"src/methods/Channel.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),ChannelMethods=class{constructor(requestHandler,disableEveryone){this.requestHandler=requestHandler;this.disableEveryone=disableEveryone;}async getChannel(channelId){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"get","json")}async updateChannel(channelId,data){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"patch","json",data)}async deleteChannel(channelId,reason){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"delete","json",{reason})}async getChannelMessages(channelId,options={limit:50}){if(options.around?(delete options.before,delete options.after):options.before?(delete options.around,delete options.after):options.after&&(delete options.before,delete options.around),options.limit!==void 0&&(options.limit<Constants3.GET_CHANNEL_MESSAGES_MIN_RESULTS||options.limit>Constants3.GET_CHANNEL_MESSAGES_MAX_RESULTS))throw new RangeError(`Amount of messages that may be requested has to be between ${Constants3.GET_CHANNEL_MESSAGES_MIN_RESULTS} and ${Constants3.GET_CHANNEL_MESSAGES_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),options,"get","json")}async getChannelMessage(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"get","json")}async createMessage(channelId,data,options={disableEveryone:this.disableEveryone}){if(typeof data!="string"&&!data.content&&!data.embeds&&!data.sticker_ids&&!data.components&&!data.files)throw new Error("Missing content, embeds, sticker_ids, components, or files");return typeof data=="string"&&(data={content:data}),data.content&&(options.disableEveryone??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),data.files?this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","json",data)}async createVoiceMessage(channelId,data,audioDurationSeconds,waveform=""){let{upload_url,upload_filename}=await this.requestHandler.request(Endpoints3.CHANNEL_ATTACHMENTS(channelId),{},"post","json",{files:[{id:"69420",filename:"voice-message.ogg",file_size:data.byteLength}]}).then(d=>d.attachments[0]);return await fetch(upload_url,{method:"PUT",body:data}),this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","json",{attachments:[{id:"42069",uploaded_filename:upload_filename,filename:"voice-message.ogg",duration_secs:audioDurationSeconds,waveform}],flags:8192})}async crosspostMessage(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_CROSSPOST(channelId,messageId),{},"post","json")}async createReaction(channelId,messageId,emoji){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,"@me"),{},"put","json")}async deleteReactionSelf(channelId,messageId,emoji){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,"@me"),{},"delete","json")}async deleteReaction(channelId,messageId,emoji,userId){return this.requestHandler.request(userId?Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,userId):Endpoints3.CHANNEL_MESSAGE_REACTION(channelId,messageId,emoji),{},"delete","json")}async getReactions(channelId,messageId,emoji,options){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION(channelId,messageId,emoji),options,"get","json")}async deleteAllReactions(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTIONS(channelId,messageId),{},"delete","json")}async editMessage(channelId,messageId,data,options={disableEveryone:this.disableEveryone}){return typeof data=="string"&&(data={content:data}),data.content&&(options.disableEveryone??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),data.files?this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"patch","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"patch","json",data)}async deleteMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"delete","json",{reason})}async bulkDeleteMessages(channelId,messages,reason){if(messages.length<Constants3.BULK_DELETE_MESSAGES_MIN||messages.length>Constants3.BULK_DELETE_MESSAGES_MAX)throw new RangeError(`Amount of messages to be deleted has to be between ${Constants3.BULK_DELETE_MESSAGES_MIN} and ${Constants3.BULK_DELETE_MESSAGES_MAX}`);let oldestSnowflake=BigInt(Date.now()-142128e7)*BigInt(2)**BigInt(22),forbiddenMessage=messages.find(m=>BigInt(m)<oldestSnowflake);if(forbiddenMessage)throw new Error(`The message ${forbiddenMessage} is older than 2 weeks and may not be deleted using the bulk delete endpoint`);let data={messages};return reason&&Object.assign(data,{reason}),this.requestHandler.request(Endpoints3.CHANNEL_BULK_DELETE(channelId),{},"post","json",data)}async editChannelPermission(channelId,permissionId,data){return this.requestHandler.request(Endpoints3.CHANNEL_PERMISSION(channelId,permissionId),{},"put","json",data)}async getChannelInvites(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_INVITES(channelId),{},"get","json")}async createChannelInvite(channelId,data={max_age:86400,max_uses:0,temporary:!1,unique:!1}){return this.requestHandler.request(Endpoints3.CHANNEL_INVITES(channelId),{},"post","json",data)}async deleteChannelPermission(channelId,permissionId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PERMISSION(channelId,permissionId),{},"delete","json",{reason})}async followAnnouncementChannel(channelId,webhookChannelId){return this.requestHandler.request(Endpoints3.CHANNEL_FOLLOWERS(channelId),{},"post","json",{webhook_channel_id:webhookChannelId})}async startChannelTyping(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_TYPING(channelId),{},"post","json")}async getChannelPinnedMessages(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_PINS(channelId),{},"get","json")}async addChannelPinnedMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PIN(channelId,messageId),{},"put","json",{reason})}async removeChannelPinnedMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PIN(channelId,messageId),{},"delete","json",{reason})}async createThreadWithMessage(channelId,messageId,options){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_THREADS(channelId,messageId),{},"post","json",options)}async createThreadWithoutMessage(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS(channelId),{},"post","json",options)}async joinThread(threadId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,"@me"),{},"put","json")}async addThreadMember(threadId,userId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{},"put","json")}async leaveThread(threadId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,"@me"),{},"delete","json")}removeThreadMember(threadId,userId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{},"delete","json")}async getThreadMember(threadId,userId,withMember){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{with_member:withMember},"get","json")}async getThreadMembers(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBERS(channelId),options,"get","json")}async getChannelArchivedPublicThreads(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PUBLIC(channelId),options,"get","json")}async getChannelArchivedPrivateThreads(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PRIVATE(channelId),options,"get","json")}async getChannelArchivedPrivateThreadsUser(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PRIVATE_USER(channelId),options,"get","json")}async refreshAttachmentURLs(attachments){return this.requestHandler.request(Endpoints3.ATTACHMENTS_REFRESH_URLS,{},"post","json",{attachment_urls:Array.isArray(attachments)?attachments:[attachments]})}};module.exports=ChannelMethods;}});var require_GuildAssets=__commonJS({"src/methods/GuildAssets.ts"(exports,module){var Constants3=require_Constants(),Endpoints3=require_Endpoints(),GuildAssetsMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getEmojis(guildId){return this.requestHandler.request(Endpoints3.GUILD_EMOJIS(guildId),{},"get","json")}async getEmoji(guildId,emojiId){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"get","json")}async createEmoji(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_EMOJIS(guildId),{},"post","json",data)}async updateEmoji(guildId,emojiId,data){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"patch","json",data)}async deleteEmoji(guildId,emojiId,reason){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"delete","json",{reason})}async getSticker(stickerId){return this.requestHandler.request(Endpoints3.STICKER(stickerId),{},"get","json")}async getGuildStickers(guildId){return this.requestHandler.request(Endpoints3.GUILD_STICKERS(guildId),{},"get","json")}async getGuildSticker(guildId,stickerId){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"get","json")}async createGuildSticker(guildId,data){let form=new FormData,reason=data.reason;data.reason&&delete data.reason;for(let key of Object.keys(data))await Constants3.standardAddToFormHandler(form,key,data[key]);return this.requestHandler.request(Endpoints3.GUILD_STICKERS(guildId),{},"post","multipart",form,reason?{"X-Audit-Log-Reason":reason}:void 0)}updateGuildSticker(guildId,stickerId,data){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"patch","json",data)}deleteGuildSticker(guildId,stickerId,reason){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"delete","json",{reason})}};module.exports=GuildAssetsMethods;}});var require_Guild=__commonJS({"src/methods/Guild.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),GuildMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async createGuild(data){return this.requestHandler.request(Endpoints3.GUILDS,{},"post","json",data)}async getGuild(guildId,withCounts){return this.requestHandler.request(Endpoints3.GUILD(guildId),{with_counts:withCounts},"get","json")}async getGuildPreview(guildId){return this.requestHandler.request(Endpoints3.GUILD_PREVIEW(guildId),{},"get","json")}async updateGuild(guildId,data){return this.requestHandler.request(Endpoints3.GUILD(guildId),{},"patch","json",data)}async deleteGuild(guildId){return this.requestHandler.request(Endpoints3.GUILD(guildId),{},"delete","json")}async getGuildChannels(guildId){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"get","json")}async createGuildChannel(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"post","json",data)}async updateChannelPositions(guildId,data,reason){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"patch","json",data,reason?{"X-Audit-Log-Reason":reason}:void 0)}async listActiveThreads(guildId){return this.requestHandler.request(Endpoints3.GUILD_THREADS_ACTIVE(guildId),{},"get","json")}async getGuildMember(guildId,memberId){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"get","json")}async getGuildMembers(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_MEMBERS(guildId),options,"get","json")}async searchGuildMembers(guildId,options){if(options.limit!==void 0&&(options.limit<Constants3.SEARCH_MEMBERS_MIN_RESULTS||options.limit>Constants3.SEARCH_MEMBERS_MAX_RESULTS))throw new RangeError(`Limit for searching guild members has to be between ${Constants3.SEARCH_MEMBERS_MIN_RESULTS} and ${Constants3.SEARCH_MEMBERS_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.GUILD_MEMBERS_SEARCH(guildId),options,"get","json")}async addGuildMember(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"put","json",data)}async updateGuildMember(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"patch","json",data)}async updateSelf(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,"@me"),{},"patch","json",data)}async addGuildMemberRole(guildId,memberId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER_ROLE(guildId,memberId,roleId),{},"put","json",{reason})}async removeGuildMemberRole(guildId,memberId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER_ROLE(guildId,memberId,roleId),{},"delete","json",{reason})}async removeGuildMember(guildId,memberId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"delete","json",{reason})}async getGuildBans(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_BANS(guildId),options,"get","json")}async getGuildBan(guildId,memberId){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"get","json")}async createGuildBan(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"put","json",data)}async removeGuildBan(guildId,memberId,reason){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"delete","json",{reason})}async getGuildRoles(guildId){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"get","json")}async createGuildRole(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"post","json",data)}async updateGuildRolePositions(guildId,data,reason){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"patch","json",data,reason?{"X-Audit-Log-Reason":reason}:void 0)}async updateGuildRole(guildId,roleId,data){return this.requestHandler.request(Endpoints3.GUILD_ROLE(guildId,roleId),{},"patch","json",data)}async removeGuildRole(guildId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_ROLE(guildId,roleId),{},"delete","json",{reason})}async getGuildPruneCount(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_PRUNE(guildId),options,"get","json")}async startGuildPrune(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_PRUNE(guildId),{},"post","json",data)}async getGuildVoiceRegions(guildId){return this.requestHandler.request(Endpoints3.GUILD_VOICE_REGIONS(guildId),{},"get","json")}async getGuildInvites(guildId){return this.requestHandler.request(Endpoints3.GUILD_INVITES(guildId),{},"get","json")}async getGuildIntegrations(guildId){return this.requestHandler.request(Endpoints3.GUILD_INTEGRATIONS(guildId),{},"get","json")}async removeGuildIntegration(guildId,integrationId,reason){return this.requestHandler.request(Endpoints3.GUILD_INTEGRATION(guildId,integrationId),{},"delete","json",{reason})}async getGuildWidgetSettings(guildId){return this.requestHandler.request(Endpoints3.GUILD_WIDGET_SETTINGS(guildId),{},"get","json")}async updateGuildWidgetSettings(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_WIDGET_SETTINGS(guildId),{},"patch","json",data)}async getGuildWidget(guildId){return this.requestHandler.request(Endpoints3.GUILD_WIDGET(guildId),{},"get","json")}async getGuildVanityURL(guildId){return this.requestHandler.request(Endpoints3.GUILD_VANITY(guildId),{},"get","json")}async getGuildWelcomeScreen(guildId){return this.requestHandler.request(Endpoints3.GUILD_WELCOME_SCREEN(guildId),{},"get","json")}async editGuildWelcomeScreen(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_WELCOME_SCREEN(guildId),{},"patch","json",data)}updateCurrentUserVoiceState(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_VOICE_STATE_USER(guildId,"@me"),{},"patch","json",data)}updateUserVoiceState(guildId,userId,data){return this.requestHandler.request(Endpoints3.GUILD_VOICE_STATE_USER(guildId,userId),{},"patch","json",data)}};module.exports=GuildMethods;}});var require_GuildScheduledEvent=__commonJS({"src/methods/GuildScheduledEvent.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),GuildScheduledEventMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async listGuildScheduledEvents(guildId,withCounts){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENTS(guildId),{with_user_count:withCounts},"get","json")}async createGuildScheduledEvent(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENTS(guildId),{},"post","json",data)}async getGuildScheduledEvent(guildId,eventId,withCounts){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"get","json",{with_user_count:withCounts})}async editGuildScheduledEvent(guildId,eventId,data){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"patch","json",data)}async deleteGuildScheduledEvent(guildId,eventId){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"delete","json")}async getGuildScheduledEventUsers(guildId,eventId,options){if((options==null?void 0:options.limit)!==void 0&&(options.limit<Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS||options.limit>Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS))throw new RangeError(`The maximum amount of users that may be requested has to be between ${Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS} and ${Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT_USERS(guildId,eventId),options,"get","json")}};module.exports=GuildScheduledEventMethods;}});var require_GuildTemplate=__commonJS({"src/methods/GuildTemplate.ts"(exports,module){var Endpoints3=require_Endpoints(),GuildTemplateMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}getGuildTemplate(code){return this.requestHandler.request(Endpoints3.TEMPLATE(code),{},"get","json")}createGuildFromGuildTemplate(code,options){return this.requestHandler.request(Endpoints3.TEMPLATE(code),{},"post","json",options)}getGuildTemplates(guildId){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATES(guildId),{},"get","json")}createGuildTemplate(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATES(guildId),{},"post","json",data)}syncGuildTemplate(guildId,code){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"put","json")}modifyGuildTemplate(guildId,code,data){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"patch","json",data)}deleteGuildTemplate(guildId,code){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"delete","json")}};module.exports=GuildTemplateMethods;}});var require_Interaction=__commonJS({"src/methods/Interaction.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),InteractionMethods=class{constructor(requestHandler,webhooks){this.requestHandler=requestHandler;this.webhooks=webhooks;}getApplicationCommands(appId,withLocalizations){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{with_localizations:withLocalizations},"get","json")}createApplicationCommand(appId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{},"post","json",data)}getApplicationCommand(appId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"get","json")}editApplicationCommand(appId,cmdId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"patch","json",data)}deleteApplicationCommand(appId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"delete","json")}bulkOverwriteApplicationCommands(appId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{},"put","json",data)}getGuildApplicationCommands(appId,guildId,withLocalizations){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{with_localizations:withLocalizations},"get","json")}createGuildApplicationCommand(appId,guildId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{},"post","json",data)}getGuildApplicationCommand(appId,guildId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"get","json")}editGuildApplicationCommand(appId,guildId,cmdId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"patch","json",data)}deleteGuildApplicationCommand(appId,guildId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"delete","json")}bulkOverwriteGuildApplicationCommands(appId,guildId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{},"put","json",data)}getGuildApplicationCommandPermissions(appId,guildId,cmdId){return cmdId?this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId,guildId,cmdId),{},"get","json"):this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS_PERMISSIONS(appId,guildId),{},"get","json")}editGuildApplicationCommandPermissions(appId,guildId,cmdId,permissions){let payload={permissions};return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId,guildId,cmdId),{},"put","json",payload)}async createInteractionResponse(interactionId,token,data){return data.files?this.requestHandler.request(Endpoints3.INTERACTION_CALLBACK(interactionId,token),{},"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.INTERACTION_CALLBACK(interactionId,token),{},"post","json",data)}getOriginalInteractionResponse(appId,token){return this.webhooks.getWebhookMessage(appId,token,"@original")}editOriginalInteractionResponse(appId,token,data){return this.webhooks.editWebhookMessage(appId,token,"@original",data)}deleteOriginalInteractionResponse(appId,token){return this.webhooks.deleteWebhookMessage(appId,token,"@original")}createFollowupMessage(appId,token,data){return this.webhooks.executeWebhook(appId,token,data)}getFollowupMessage(appId,token,messageId){return this.webhooks.getWebhookMessage(appId,token,messageId)}editFollowupMessage(appId,token,messageId,data){return this.webhooks.editWebhookMessage(appId,token,messageId,data)}deleteFollowupMessage(appId,token,messageId){return this.webhooks.deleteWebhookMessage(appId,token,messageId)}};module.exports=InteractionMethods;}});var require_Invite=__commonJS({"src/methods/Invite.ts"(exports,module){var Endpoints3=require_Endpoints(),InviteMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getInvite(inviteId,options){return this.requestHandler.request(Endpoints3.INVITES(inviteId),options,"get","json")}async deleteInvite(inviteId){return this.requestHandler.request(Endpoints3.INVITES(inviteId),{},"delete","json")}};module.exports=InviteMethods;}});var require_StageInstance=__commonJS({"src/methods/StageInstance.ts"(exports,module){var Endpoints3=require_Endpoints(),StageInstanceMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async createStageInstance(data){return this.requestHandler.request(Endpoints3.STAGE_INSTANCES,{},"post","json",data)}async getStageInstance(channelId){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"get","json")}async editStageInstance(channelId,data){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"patch","json",data)}async deleteStageInstance(channelId,reason){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"delete","json",{reason})}};module.exports=StageInstanceMethods;}});var require_User=__commonJS({"src/methods/User.ts"(exports,module){var Endpoints3=require_Endpoints(),UserMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getSelf(){return this.requestHandler.request(Endpoints3.USER("@me"),{},"get","json")}async getUser(userId){return this.requestHandler.request(Endpoints3.USER(userId),{},"get","json")}async updateSelf(data){return this.requestHandler.request(Endpoints3.USER("@me"),{},"patch","json",data)}async getGuilds(options){return this.requestHandler.request(Endpoints3.USER_GUILDS("@me"),{},"get","json",options)}async leaveGuild(guildId){return this.requestHandler.request(Endpoints3.USER_GUILD("@me",guildId),{},"delete","json")}async createDirectMessageChannel(userId){return this.requestHandler.request(Endpoints3.USER_CHANNELS("@me"),{},"post","json",{recipient_id:userId})}async createGroupDirectMessageChannel(data){return this.requestHandler.request(Endpoints3.USER_CHANNELS("@me"),{},"post","json",data)}async getConnections(){return this.requestHandler.request(Endpoints3.USER_CONNECTIONS("@me"),{},"get","json")}async getApplicationRoleConnection(appId){return this.requestHandler.request(Endpoints3.USER_APPLICATION_ROLE_CONNECTION("@me",appId),{},"get","json")}async updateApplicationRoleConnection(appId,data){return this.requestHandler.request(Endpoints3.USER_APPLICATION_ROLE_CONNECTION("@me",appId),{},"put","json",data)}};module.exports=UserMethods;}});var require_Voice=__commonJS({"src/methods/Voice.ts"(exports,module){var Endpoints3=require_Endpoints(),VoiceMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getVoiceRegions(){return this.requestHandler.request(Endpoints3.VOICE_REGIONS,{},"get","json")}async getCurrentUserVoiceState(guildId){return this.requestHandler.request(Endpoints3.USER_GUILD_VOICE_STATE(guildId,"@me"),{},"get","json")}async getUserVoiceState(guildId,userId){return this.requestHandler.request(Endpoints3.USER_GUILD_VOICE_STATE(guildId,userId),{},"get","json")}};module.exports=VoiceMethods;}});var require_Webhook=__commonJS({"src/methods/Webhook.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),WebhookMethods=class{constructor(requestHandler,disableEveryone){this.requestHandler=requestHandler;this.disableEveryone=disableEveryone;}async createWebhook(channelId,data){return this.requestHandler.request(Endpoints3.CHANNEL_WEBHOOKS(channelId),{},"post","json",data)}async getChannelWebhooks(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_WEBHOOKS(channelId),{},"get","json")}async getGuildWebhooks(guildId){return this.requestHandler.request(Endpoints3.GUILD_WEBHOOKS(guildId),{},"get","json")}async getWebhook(webhookId,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"get","json"):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"get","json")}async updateWebhook(webhookId,data,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"patch","json",data):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"patch","json",data)}async deleteWebhook(webhookId,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"delete","json"):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"delete","json")}async executeWebhook(webhookId,token,data,options){if(typeof data!="string"&&!(data!=null&&data.content)&&!(data!=null&&data.embeds)&&!(data!=null&&data.components)&&!(data!=null&&data.files))throw new Error("Missing content or embeds or components or files");return typeof data=="string"&&(data={content:data}),data.content&&((options==null?void 0:options.disableEveryone)??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),options&&delete options.disableEveryone,data.files?this.requestHandler.request(`${Endpoints3.WEBHOOK_TOKEN(webhookId,token)}`,options,"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),options,"post","json",data)}async executeWebhookSlack(webhookId,token,data,options){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_SLACK(webhookId,token),options,"post","json",data)}async executeWebhookGitHub(webhookId,token,data,options={}){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_GITHUB(webhookId,token),options,"post","json",data)}async getWebhookMessage(webhookId,token,messageId,threadId){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"get","json")}async editWebhookMessage(webhookId,token,messageId,data){let threadId;return data.thread_id&&(threadId=data.thread_id),delete data.thread_id,data.files?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"patch","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"patch","json",data)}async deleteWebhookMessage(webhookId,token,messageId,threadId){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"delete","json")}};module.exports=WebhookMethods;}});var require_tokenless=__commonJS({"src/tokenless.ts"(exports,module){var Endpoints3=require_Endpoints();async function getOauth2Token(clientId,redirectURI,clientSecret,code){return (await fetch(`${Endpoints3.BASE_HOST}${Endpoints3.OAUTH2_TOKEN}`,{method:"POST",body:new URLSearchParams({grant_type:"authorization_code",code,client_id:clientId,client_secret:clientSecret,redirect_uri:redirectURI})})).json()}module.exports={getOauth2Token};}});var require_SnowTransfer=__commonJS({"src/SnowTransfer.ts"(exports$1,module){init_RequestHandler();var AuditLogMethods=require_AuditLog(),AutoModerationMethods=require_AutoModeration(),BotMethods=require_Bot(),ChannelMethods=require_Channel(),GuildAssetsMethods=require_GuildAssets(),GuildMethods=require_Guild(),GuildScheduledEventMethods=require_GuildScheduledEvent(),GuildTemplateMethods=require_GuildTemplate(),InteractionMethods=require_Interaction(),InviteMethods=require_Invite(),StageInstanceMethods=require_StageInstance(),UserMethods=require_User(),VoiceMethods=require_Voice(),WebhookMethods=require_Webhook(),Endpoints3=require_Endpoints(),Constants3=require_Constants(),SnowTransfer=class{constructor(token,options){if(typeof token=="string"&&token==="")throw new Error("Missing token");token&&!token.startsWith("Bot")&&!token.startsWith("Bearer")&&(token=`Bot ${token}`),this.options={baseHost:Endpoints3.BASE_HOST,disableEveryone:!1,bypassBuckets:!1,retryRequests:!1,retryLimit:Constants3.DEFAULT_RETRY_LIMIT,...options},this.token=token,this.ratelimiter=new exports.Ratelimiter,this.requestHandler=new exports.RequestHandler(this.ratelimiter,{token:this.token,baseHost:this.options.baseHost,bypassBuckets:this.options.bypassBuckets,retryFailed:this.options.retryRequests,retryLimit:this.options.retryLimit}),this.channel=new ChannelMethods(this.requestHandler,this.options.disableEveryone),this.user=new UserMethods(this.requestHandler),this.guildAssets=new GuildAssetsMethods(this.requestHandler),this.webhook=new WebhookMethods(this.requestHandler,this.options.disableEveryone),this.guild=new GuildMethods(this.requestHandler),this.guildScheduledEvent=new GuildScheduledEventMethods(this.requestHandler),this.guildTemplate=new GuildTemplateMethods(this.requestHandler),this.interaction=new InteractionMethods(this.requestHandler,this.webhook),this.invite=new InviteMethods(this.requestHandler),this.voice=new VoiceMethods(this.requestHandler),this.bot=new BotMethods(this.requestHandler),this.auditLog=new AuditLogMethods(this.requestHandler),this.stageInstance=new StageInstanceMethods(this.requestHandler),this.autoMod=new AutoModerationMethods(this.requestHandler);}};module.exports=SnowTransfer;}});init_RequestHandler();var AuditLogMethods2=require_AuditLog(),AutoModerationMethods2=require_AutoModeration(),BotMethods2=require_Bot(),ChannelMethods2=require_Channel(),GuildAssetsMethods2=require_GuildAssets(),GuildMethods2=require_Guild(),GuildScheduledEventMethods2=require_GuildScheduledEvent(),GuildTemplateMethods2=require_GuildTemplate(),InteractionMethods2=require_Interaction(),InviteMethods2=require_Invite(),StageInstanceMethods2=require_StageInstance(),UserMethods2=require_User(),VoiceMethods2=require_Voice(),WebhookMethods2=require_Webhook(),tokenless2=require_tokenless(),Constants2=require_Constants(),Endpoints2=require_Endpoints(),SnowTransfer2=require_SnowTransfer();
8
+ var __getOwnPropNames=Object.getOwnPropertyNames;var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0, fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};var require_Constants=__commonJS({"src/Constants.ts"(exports,module){var mentionRegex=/@([^<>@ ]*)/gsmu,isValidUserMentionRegex=/^[&!]?\d+$/;function replaceEveryoneMatchProcessor(_match,target){return isValidUserMentionRegex.test(target)?`@${target}`:`@\u200B${target}`}var Constants3={REST_API_VERSION:10,GET_CHANNEL_MESSAGES_MIN_RESULTS:1,GET_CHANNEL_MESSAGES_MAX_RESULTS:100,GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS:1,GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS:100,SEARCH_MEMBERS_MIN_RESULTS:1,SEARCH_MEMBERS_MAX_RESULTS:1e3,BULK_DELETE_MESSAGES_MIN:2,BULK_DELETE_MESSAGES_MAX:100,OK_STATUS_CODES:new Set([200,201,204,304]),DO_NOT_RETRY_STATUS_CODES:new Set([401,403,404,405,411,413,429]),DEFAULT_RETRY_LIMIT:3,GLOBAL_REQUESTS_PER_SECOND:50,async standardMultipartHandler(data){let form=new FormData;if(data.files&&Array.isArray(data.files)&&data.files.every(f=>!!f.name&&!!f.file)){let index=0;for(let file of data.files)await Constants3.standardAddToFormHandler(form,`files[${index}]`,file.file,file.name),delete file.file,index++;}return data.data&&delete data.files,form.append("payload_json",JSON.stringify(data)),form},async standardAddToFormHandler(form,name,value,filename){var _a;if(value instanceof Buffer)form.append(name,new buffer.Blob([value]),filename);else if(value instanceof buffer.Blob||value instanceof buffer.File)form.append(name,value,filename);else if(value instanceof stream.Readable||value instanceof web.ReadableStream){let blob=await new Response(value instanceof web.ReadableStream?value:stream.Readable.toWeb(value)).blob();form.set(name,blob,filename);}else throw new Error(`Don't know how to add ${((_a=value==null?void 0:value.constructor)==null?void 0:_a.name)??typeof value} to form`)},replaceEveryone(content){return content.replace(mentionRegex,replaceEveryoneMatchProcessor)}};module.exports=Constants3;}});var require_Endpoints=__commonJS({"src/Endpoints.ts"(exports,module){var Constants3=require_Constants(),Endpoints3={BASE_URL:"/api/v"+Constants3.REST_API_VERSION,BASE_HOST:"https://discord.com",CDN_URL:"https://cdn.discordapp.com",APPLICATION_COMMAND:(appId,cmdId)=>`${Endpoints3.APPLICATION_COMMANDS(appId)}/${cmdId}`,APPLICATION_COMMANDS:appId=>`/applications/${appId}/commands`,APPLICATION_GUILD_COMMANDS_PERMISSIONS:(appId,guildId)=>`${Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId)}/permissions`,APPLICATION_GUILD_COMMAND_PERMISSIONS:(appId,guildId,cmdId)=>`${Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId)}/permissions`,APPLICATION_GUILD_COMMAND:(appId,guildId,cmdId)=>`${Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId)}/${cmdId}`,APPLICATION_GUILD_COMMANDS:(appId,guildId)=>`/applications/${appId}/guilds/${guildId}/commands`,ATTACHMENTS_REFRESH_URLS:"/attachments/refresh-urls",CHANNEL:chanId=>`${Endpoints3.CHANNELS}/${chanId}`,CHANNEL_ATTACHMENTS:chanId=>`${Endpoints3.CHANNEL(chanId)}/attachments`,CHANNEL_BULK_DELETE:chanId=>`${Endpoints3.CHANNEL_MESSAGES(chanId)}/bulk-delete`,CHANNEL_FOLLOWERS:chanId=>`${Endpoints3.CHANNEL(chanId)}/followers`,CHANNEL_INVITES:chanId=>`${Endpoints3.CHANNEL(chanId)}/invites`,CHANNEL_MESSAGE:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGES(chanId)}/${msgId}`,CHANNEL_MESSAGE_CROSSPOST:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/crosspost`,CHANNEL_MESSAGE_REACTION:(chanId,msgId,reaction)=>`${Endpoints3.CHANNEL_MESSAGE_REACTIONS(chanId,msgId)}/${reaction}`,CHANNEL_MESSAGE_REACTION_USER:(chanId,msgId,reaction,userId)=>`${Endpoints3.CHANNEL_MESSAGE_REACTION(chanId,msgId,reaction)}/${userId}`,CHANNEL_MESSAGE_REACTIONS:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/reactions`,CHANNEL_MESSAGE_THREADS:(chanId,msgId)=>`${Endpoints3.CHANNEL_MESSAGE(chanId,msgId)}/threads`,CHANNEL_MESSAGES:chanId=>`${Endpoints3.CHANNEL(chanId)}/messages`,CHANNEL_PERMISSION:(chanId,permId)=>`${Endpoints3.CHANNEL_PERMISSIONS(chanId)}/${permId}`,CHANNEL_PERMISSIONS:chanId=>`${Endpoints3.CHANNEL(chanId)}/permissions`,CHANNEL_PIN:(chanId,msgId)=>`${Endpoints3.CHANNEL_PINS(chanId)}/${msgId}`,CHANNEL_PINS:chanId=>`${Endpoints3.CHANNEL(chanId)}/pins`,CHANNEL_RECIPIENT:(chanId,userId)=>`${Endpoints3.CHANNEL(chanId)}/recipients/${userId}`,CHANNEL_THREADS:chanId=>`${Endpoints3.CHANNEL(chanId)}/threads`,CHANNEL_THREAD_MEMBER:(chanId,memberId)=>`${Endpoints3.CHANNEL_THREAD_MEMBERS(chanId)}/${memberId}`,CHANNEL_THREAD_MEMBERS:chanId=>`${Endpoints3.CHANNEL(chanId)}/thread-members`,CHANNEL_THREADS_ARCHIVED_PRIVATE:chanId=>`${Endpoints3.CHANNEL_THREADS(chanId)}/archived/private`,CHANNEL_THREADS_ARCHIVED_PRIVATE_USER:chanId=>`${Endpoints3.CHANNEL(chanId)}/users/@me/threads/archived/private`,CHANNEL_THREADS_ARCHIVED_PUBLIC:chanId=>`${Endpoints3.CHANNEL_THREADS(chanId)}/archived/public`,CHANNEL_TYPING:chanId=>`${Endpoints3.CHANNEL(chanId)}/typing`,CHANNEL_WEBHOOKS:chanId=>`${Endpoints3.CHANNEL(chanId)}/webhooks`,CHANNELS:"/channels",GATEWAY:"/gateway",GATEWAY_BOT:"/gateway/bot",GUILD:guildId=>`${Endpoints3.GUILDS}/${guildId}`,GUILD_AUDIT_LOGS:guildId=>`${Endpoints3.GUILD(guildId)}/audit-logs`,GUILD_AUTO_MOD_RULE:(guildId,ruleId)=>`${Endpoints3.GUILD_AUTO_MOD_RULES(guildId)}/${ruleId}`,GUILD_AUTO_MOD_RULES:guildId=>`${Endpoints3.GUILD(guildId)}/auto-moderation/rules`,GUILD_BAN:(guildId,memberId)=>`${Endpoints3.GUILD_BANS(guildId)}/${memberId}`,GUILD_BANS:guildId=>`${Endpoints3.GUILD(guildId)}/bans`,GUILD_CHANNELS:guildId=>`${Endpoints3.GUILD(guildId)}/channels`,GUILD_EMOJI:(guildId,emojiId)=>`${Endpoints3.GUILD_EMOJIS(guildId)}/${emojiId}`,GUILD_EMOJIS:guildId=>`${Endpoints3.GUILD(guildId)}/emojis`,GUILD_INVITES:guildId=>`${Endpoints3.GUILD(guildId)}/invites`,GUILD_INTEGRATION:(guildId,integrationId)=>`${Endpoints3.GUILD_INTEGRATIONS(guildId)}/${integrationId}`,GUILD_INTEGRATIONS:guildId=>`${Endpoints3.GUILD(guildId)}/integrations`,GUILD_MEMBER:(guildId,memberId)=>`${Endpoints3.GUILD_MEMBERS(guildId)}/${memberId}`,GUILD_MEMBER_ROLE:(guildId,memberId,roleId)=>`${Endpoints3.GUILD_MEMBER(guildId,memberId)}/roles/${roleId}`,GUILD_MEMBERS:guildId=>`${Endpoints3.GUILD(guildId)}/members`,GUILD_MEMBERS_SEARCH:guildId=>`${Endpoints3.GUILD_MEMBERS(guildId)}/search`,GUILD_PREVIEW:guildId=>`${Endpoints3.GUILD(guildId)}/preview`,GUILD_PRUNE:guildId=>`${Endpoints3.GUILD(guildId)}/prune`,GUILD_ROLE:(guildId,roleId)=>`${Endpoints3.GUILD_ROLES(guildId)}/${roleId}`,GUILD_ROLES:guildId=>`${Endpoints3.GUILD(guildId)}/roles`,GUILD_SCHEDULED_EVENTS:guildId=>`${Endpoints3.GUILD(guildId)}/scheduled-events`,GUILD_SCHEDULED_EVENT:(guildId,eventId)=>`${Endpoints3.GUILD_SCHEDULED_EVENTS(guildId)}/${eventId}`,GUILD_SCHEDULED_EVENT_USERS:(guildId,eventId)=>`${Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId)}/users`,GUILD_STICKER:(guildId,stickerId)=>`${Endpoints3.GUILD_STICKERS(guildId)}/${stickerId}`,GUILD_STICKERS:guildId=>`${Endpoints3.GUILD(guildId)}/stickers`,GUILD_TEMPLATE:(guildId,code)=>`${Endpoints3.GUILD_TEMPLATES(guildId)}/${code}`,GUILD_THREADS_ACTIVE:guildId=>`${Endpoints3.GUILD(guildId)}/threads/active`,GUILD_TEMPLATES:guildId=>`${Endpoints3.GUILD(guildId)}/templates`,GUILD_VANITY:guildId=>`${Endpoints3.GUILD(guildId)}/vanity-url`,GUILD_VOICE_REGIONS:guildId=>`${Endpoints3.GUILD(guildId)}/regions`,GUILD_VOICE_STATE_USER:(guildId,memberId)=>`${Endpoints3.GUILD(guildId)}/voice-states/${memberId}`,GUILD_WEBHOOKS:guildId=>`${Endpoints3.GUILD(guildId)}/webhooks`,GUILD_WELCOME_SCREEN:guildId=>`${Endpoints3.GUILD(guildId)}/welcome-screen`,GUILD_WIDGET:guildId=>`${Endpoints3.GUILD(guildId)}/widget.json`,GUILD_WIDGET_SETTINGS:guildId=>`${Endpoints3.GUILD(guildId)}/widget`,GUILDS:"/guilds",INTERACTION_CALLBACK:(interactionId,token)=>`/interactions/${interactionId}/${token}/callback`,INVITES:inviteId=>`/invites/${inviteId}`,OAUTH2_APPLICATION:appId=>`/oauth2/applications/${appId}`,OAUTH2_TOKEN:"/api/oauth2/token",STAGE_INSTANCE_CHANNEL:chanId=>`${Endpoints3.STAGE_INSTANCES}/${chanId}`,STAGE_INSTANCES:"/stage-instances",STICKER:stickerId=>`/stickers/${stickerId}`,TEMPLATE:code=>`/guilds/templates/${code}`,USER:userId=>`${Endpoints3.USERS}/${userId}`,USER_APPLICATION_ROLE_CONNECTION:(userId,appId)=>`${Endpoints3.USER(userId)}/applications/${appId}/role-connection`,USER_CHANNELS:userId=>`${Endpoints3.USER(userId)}/channels`,USER_CONNECTIONS:userId=>`${Endpoints3.USER(userId)}/connections`,USER_GUILD:(userId,guildId)=>`${Endpoints3.USER_GUILDS(userId)}/${guildId}`,USER_GUILDS:userId=>`${Endpoints3.USER(userId)}/guilds`,USER_GUILD_VOICE_STATE:(guildId,userId)=>`${Endpoints3.GUILD(guildId)}/voice-states/${userId}`,USERS:"/users",VOICE_REGIONS:"/voice/regions",WEBHOOK:hookId=>`/webhooks/${hookId}`,WEBHOOK_TOKEN:(hookId,token)=>`${Endpoints3.WEBHOOK(hookId)}/${token}`,WEBHOOK_TOKEN_GITHUB:(hookId,token)=>`${Endpoints3.WEBHOOK_TOKEN(hookId,token)}/github`,WEBHOOK_TOKEN_MESSAGE:(hookId,token,msgId)=>`/webhooks/${hookId}/${token}/messages/${msgId}`,WEBHOOK_TOKEN_SLACK:(hookId,token)=>`${Endpoints3.WEBHOOK_TOKEN(hookId,token)}/slack`};module.exports=Endpoints3;}});function appendQuery(query){let count=0;for(let[key,value]of Object.entries(query))value==null?delete query[key]:count++;return count>0?`?${new URLSearchParams(query).toString()}`:""}var fs,path,crypto,Endpoints,version,Constants,routeRegex,reactionsRegex,reactionsUserRegex,webhooksRegex,isMessageEndpointRegex,isGuildChannelsRegex,disallowedBodyMethods;exports.DiscordAPIError = void 0;exports.AsyncSequentialQueue = void 0;exports.Ratelimiter = void 0;exports.LocalBucket = void 0;exports.GlobalBucket = void 0;exports.RequestHandler = void 0;var init_RequestHandler=__esm({"src/RequestHandler.ts"(){fs=__require("fs"),path=__require("path"),crypto=__require("crypto"),Endpoints=require_Endpoints(),{version}=JSON.parse(fs.readFileSync(path.join(__dirname,"../package.json"),{encoding:"utf8"})),Constants=require_Constants(),routeRegex=/\/([a-z-]+)\/(?:\d+)/g,reactionsRegex=/\/reactions\/[^/]+/g,reactionsUserRegex=/\/reactions\/:id\/[^/]+/g,webhooksRegex=/^\/webhooks\/(\d+)\/[A-Za-z0-9-_]{64,}/,isMessageEndpointRegex=/\/messages\/:id$/,isGuildChannelsRegex=/\/guilds\/\d+\/channels$/,disallowedBodyMethods=new Set(["head","get","delete"]),exports.DiscordAPIError=class extends Error{constructor(path2,error,method,status){super();this.path=path2;this.method=method;this.name="DiscordAPIError",this.message=error.message??String(error),this.code=error.code??4e3,this.httpStatus=status;}},exports.AsyncSequentialQueue=class{constructor(){this.calls=[];this._blocked=!1;this._running=!1;}get blocked(){return this._blocked}get running(){return this._running}enqueue(fn){return new Promise((resolve,reject)=>{let wrapped=async()=>{try{resolve(await fn());}catch(e){reject(e);}};this.calls.push(wrapped),this._tryRun();})}setBlocked(blocked){this._blocked=blocked,this._tryRun();}drop(){this.calls.length=0,this._running=!1;}_tryRun(){this._blocked||this._running||(this._running=!0,this._next());}async _next(){if(this._blocked||!this._running)return;let cb=this.calls.shift();await(cb==null?void 0:cb()),this.calls.length&&!this._blocked?setImmediate(()=>this._next()):this._running=!1;}},exports.Ratelimiter=class{constructor(BucketConstructor=exports.GlobalBucket){this.BucketConstructor=BucketConstructor;this.buckets=new Map;this.globalBucket=new exports.LocalBucket(Constants.GLOBAL_REQUESTS_PER_SECOND,1e3);}get global(){return this.globalBucket.remaining===0}routify(url,method){let route=url.replace(routeRegex,function(match,p){return p==="channels"||p==="guilds"||p==="webhooks"?match:`/${p}/:id`}).replace(reactionsRegex,"/reactions/:id").replace(reactionsUserRegex,"/reactions/:id/:userId").replace(webhooksRegex,"/webhooks/$1/:token");if(method==="DELETE"&&isMessageEndpointRegex.test(route)?route=method+route:method==="GET"&&isGuildChannelsRegex.test(route)&&(route="/guilds/:id/channels"),method==="PUT"||method==="DELETE"){let index=route.indexOf("/reactions");index!==-1&&(route="MODIFY"+route.slice(0,index+10));}return route}queue(fn,url,method){let routeKey=this.routify(url,method),bucket=this.buckets.get(routeKey);return bucket||(bucket=new this.BucketConstructor(this,routeKey),this.buckets.set(routeKey,bucket)),new Promise((resolve,reject)=>{this.globalBucket.enqueue(()=>{bucket.enqueue(fn).then(resolve).catch(reject);});})}setGlobal(ms){this.globalBucket.remaining=0,this.globalBucket.queue.setBlocked(!0),this.globalBucket.makeResetTimeout(ms);}},exports.LocalBucket=class{constructor(limit=5,reset=5e3,remaining){this.limit=limit;this.reset=reset;this.queue=new exports.AsyncSequentialQueue;this.resetTimeout=null;this.remaining=remaining??limit;}enqueue(fn){return this.queue.enqueue(()=>(this.remaining--,this.remaining===0&&this.queue.setBlocked(!0),this.resetTimeout||this.makeResetTimeout(this.reset),fn(this)))}makeResetTimeout(ms){this.resetTimeout&&clearTimeout(this.resetTimeout),this.resetTimeout=setTimeout(()=>this.resetRemaining(),ms).unref();}resetRemaining(){this.resetTimeout&&clearTimeout(this.resetTimeout),this.resetTimeout=null,this.remaining=this.limit,this.queue.setBlocked(!1);}dropQueue(){this.queue.drop();}},exports.GlobalBucket=class extends exports.LocalBucket{constructor(ratelimiter,routeKey,limit=5,reset=5e3,remaining){super(limit,reset,remaining);this.ratelimiter=ratelimiter;this.routeKey=routeKey;}resetRemaining(){this.queue.calls.length||this.ratelimiter.buckets.delete(this.routeKey),super.resetRemaining();}},exports.RequestHandler=class extends events.EventEmitter{constructor(ratelimiter,options){super();this.ratelimiter=ratelimiter;this.options={baseHost:(options==null?void 0:options.baseHost)??Endpoints.BASE_HOST,baseURL:(options==null?void 0:options.baseURL)??Endpoints.BASE_URL,bypassBuckets:(options==null?void 0:options.bypassBuckets)??!1,retryFailed:(options==null?void 0:options.retryFailed)??!1,retryLimit:(options==null?void 0:options.retryLimit)??Constants.DEFAULT_RETRY_LIMIT,headers:{"User-Agent":`Discordbot (https://github.com/DasWolke/SnowTransfer, ${version}) Node.js/${process.version}`}},options!=null&&options.token&&(this.options.headers.Authorization=options.token),this.apiURL=this.options.baseHost+Endpoints.BASE_URL,this.latency=500;}request(endpoint,params={},method,dataType,data,extraHeaders,retries=this.options.retryLimit){return new Promise(async(resolve,reject)=>{let fn=async bkt=>{let reqId=crypto.randomBytes(20).toString("hex");try{this.emit("request",reqId,{endpoint,method:method.toUpperCase(),dataType,data:data??{}});let before=Date.now(),response;switch(dataType){case"json":response=await this._request(endpoint,params,method,data,extraHeaders);break;case"multipart":if(!data)throw new Error("No multipart data");response=await this._multiPartRequest(endpoint,params,method,data,extraHeaders);break;default:throw new Error("Forbidden dataType. Use json or multipart or ensure multipart has FormData")}if(this.latency=Date.now()-before,bkt&&this._applyRatelimitHeaders(bkt,response.headers),response.status&&!Constants.OK_STATUS_CODES.has(response.status)&&response.status!==429){if(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);throw new exports.DiscordAPIError(endpoint,{message:await response.text()},method.toUpperCase(),response.status)}if(response.status===429){let b=await response.json();throw b.global?this.ratelimiter.setGlobal(b.retry_after*1e3):bkt==null||bkt.queue.setBlocked(!0),this.emit("rateLimit",{timeout:(bkt==null?void 0:bkt.reset)??b.retry_after*1e3,remaining:0,limit:(bkt==null?void 0:bkt.limit)??1/0,method:method.toUpperCase(),path:endpoint,route:(bkt==null?void 0:bkt.routeKey)??this.ratelimiter.routify(endpoint,method.toUpperCase())}),new exports.DiscordAPIError(endpoint,{message:b.message,code:b.code??429},method.toUpperCase(),response.status)}if(this.emit("done",reqId,response),response.body){let b;try{b=await response.json();}catch{return resolve(void 0)}return resolve(b)}else return resolve(void 0)}catch(error){return this.emit("requestError",reqId,error),reject(error)}};this.options.bypassBuckets?fn():this.ratelimiter.queue(fn,endpoint,method.toUpperCase());})}_applyRatelimitHeaders(bkt,headers){let remaining=headers.get("x-ratelimit-remaining"),limit=headers.get("x-ratelimit-limit"),resetAfter=headers.get("x-ratelimit-reset-after");remaining&&(bkt.remaining=parseInt(remaining)),limit&&(bkt.limit=parseInt(limit)),resetAfter&&(bkt.reset=parseFloat(resetAfter)*1e3,bkt.makeResetTimeout(bkt.reset));}async _request(endpoint,params={},method,data,extraHeaders){let headers={...this.options.headers,...extraHeaders};typeof data!="string"&&(data!=null&&data.reason)&&(headers["X-Audit-Log-Reason"]=encodeURIComponent(data.reason),delete data.reason);let body;return disallowedBodyMethods.has(method)||(typeof data=="object"?body=JSON.stringify(data):body=String(data)),headers["Content-Type"]="application/json",fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`,{method:method.toUpperCase(),headers,body})}async _multiPartRequest(endpoint,params={},method,data,extraHeaders){let headers={...this.options.headers,...extraHeaders};return fetch(`${this.apiURL}${endpoint}${appendQuery(params)}`,{method:method.toUpperCase(),headers,body:data})}};}});var require_AuditLog=__commonJS({"src/methods/AuditLog.ts"(exports,module){var Endpoints3=require_Endpoints(),AuditLogMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getAuditLog(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_AUDIT_LOGS(guildId),options,"get","json")}};module.exports=AuditLogMethods;}});var require_AutoModeration=__commonJS({"src/methods/AutoModeration.ts"(exports,module){var Endpoints3=require_Endpoints(),AutoModerationMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getAutoModerationRules(guildId){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULES(guildId),{},"get","json")}async getAutoModerationRule(guildId,ruleId){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"get","json")}async createAutoModerationRule(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULES(guildId),{},"post","json",data)}async editAutoModerationRule(guildId,ruleId,data){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"patch","json",data)}async deleteAutoModerationRule(guildId,ruleId,reason){return this.requestHandler.request(Endpoints3.GUILD_AUTO_MOD_RULE(guildId,ruleId),{},"delete","json",{reason})}};module.exports=AutoModerationMethods;}});var require_Bot=__commonJS({"src/methods/Bot.ts"(exports,module){var Endpoints3=require_Endpoints(),BotMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}getGateway(){return this.requestHandler.request(Endpoints3.GATEWAY,{},"get","json")}getGatewayBot(){return this.requestHandler.request(Endpoints3.GATEWAY_BOT,{},"get","json")}getApplicationInfo(){return this.requestHandler.request(Endpoints3.OAUTH2_APPLICATION("@me"),{},"get","json")}};module.exports=BotMethods;}});var require_Channel=__commonJS({"src/methods/Channel.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),ChannelMethods=class{constructor(requestHandler,disableEveryone){this.requestHandler=requestHandler;this.disableEveryone=disableEveryone;}async getChannel(channelId){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"get","json")}async updateChannel(channelId,data){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"patch","json",data)}async deleteChannel(channelId,reason){return this.requestHandler.request(Endpoints3.CHANNEL(channelId),{},"delete","json",{reason})}async getChannelMessages(channelId,options={limit:50}){if(options.around?(delete options.before,delete options.after):options.before?(delete options.around,delete options.after):options.after&&(delete options.before,delete options.around),options.limit!==void 0&&(options.limit<Constants3.GET_CHANNEL_MESSAGES_MIN_RESULTS||options.limit>Constants3.GET_CHANNEL_MESSAGES_MAX_RESULTS))throw new RangeError(`Amount of messages that may be requested has to be between ${Constants3.GET_CHANNEL_MESSAGES_MIN_RESULTS} and ${Constants3.GET_CHANNEL_MESSAGES_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),options,"get","json")}async getChannelMessage(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"get","json")}async createMessage(channelId,data,options={disableEveryone:this.disableEveryone}){if(typeof data!="string"&&!data.content&&!data.embeds&&!data.sticker_ids&&!data.components&&!data.files&&!data.poll)throw new Error("Missing content, embeds, sticker_ids, components, files, or poll");return typeof data=="string"&&(data={content:data}),data.content&&(options.disableEveryone??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),data.files?this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","json",data)}async createVoiceMessage(channelId,data,audioDurationSeconds,waveform=""){let{upload_url,upload_filename}=await this.requestHandler.request(Endpoints3.CHANNEL_ATTACHMENTS(channelId),{},"post","json",{files:[{id:"69420",filename:"voice-message.ogg",file_size:data.byteLength}]}).then(d=>d.attachments[0]);return await fetch(upload_url,{method:"PUT",body:data}),this.requestHandler.request(Endpoints3.CHANNEL_MESSAGES(channelId),{},"post","json",{attachments:[{id:"42069",uploaded_filename:upload_filename,filename:"voice-message.ogg",duration_secs:audioDurationSeconds,waveform}],flags:8192})}async crosspostMessage(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_CROSSPOST(channelId,messageId),{},"post","json")}async createReaction(channelId,messageId,emoji){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,"@me"),{},"put","json")}async deleteReactionSelf(channelId,messageId,emoji){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,"@me"),{},"delete","json")}async deleteReaction(channelId,messageId,emoji,userId){return this.requestHandler.request(userId?Endpoints3.CHANNEL_MESSAGE_REACTION_USER(channelId,messageId,emoji,userId):Endpoints3.CHANNEL_MESSAGE_REACTION(channelId,messageId,emoji),{},"delete","json")}async getReactions(channelId,messageId,emoji,options){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTION(channelId,messageId,emoji),options,"get","json")}async deleteAllReactions(channelId,messageId){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_REACTIONS(channelId,messageId),{},"delete","json")}async editMessage(channelId,messageId,data,options={disableEveryone:this.disableEveryone}){return typeof data=="string"&&(data={content:data}),data.content&&(options.disableEveryone??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),data.files?this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"patch","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"patch","json",data)}async deleteMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE(channelId,messageId),{},"delete","json",{reason})}async bulkDeleteMessages(channelId,messages,reason){if(messages.length<Constants3.BULK_DELETE_MESSAGES_MIN||messages.length>Constants3.BULK_DELETE_MESSAGES_MAX)throw new RangeError(`Amount of messages to be deleted has to be between ${Constants3.BULK_DELETE_MESSAGES_MIN} and ${Constants3.BULK_DELETE_MESSAGES_MAX}`);let oldestSnowflake=BigInt(Date.now()-142128e7)*BigInt(2)**BigInt(22),forbiddenMessage=messages.find(m=>BigInt(m)<oldestSnowflake);if(forbiddenMessage)throw new Error(`The message ${forbiddenMessage} is older than 2 weeks and may not be deleted using the bulk delete endpoint`);let data={messages};return reason&&Object.assign(data,{reason}),this.requestHandler.request(Endpoints3.CHANNEL_BULK_DELETE(channelId),{},"post","json",data)}async editChannelPermission(channelId,permissionId,data){return this.requestHandler.request(Endpoints3.CHANNEL_PERMISSION(channelId,permissionId),{},"put","json",data)}async getChannelInvites(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_INVITES(channelId),{},"get","json")}async createChannelInvite(channelId,data={max_age:86400,max_uses:0,temporary:!1,unique:!1}){return this.requestHandler.request(Endpoints3.CHANNEL_INVITES(channelId),{},"post","json",data)}async deleteChannelPermission(channelId,permissionId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PERMISSION(channelId,permissionId),{},"delete","json",{reason})}async followAnnouncementChannel(channelId,webhookChannelId){return this.requestHandler.request(Endpoints3.CHANNEL_FOLLOWERS(channelId),{},"post","json",{webhook_channel_id:webhookChannelId})}async startChannelTyping(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_TYPING(channelId),{},"post","json")}async getChannelPinnedMessages(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_PINS(channelId),{},"get","json")}async addChannelPinnedMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PIN(channelId,messageId),{},"put","json",{reason})}async removeChannelPinnedMessage(channelId,messageId,reason){return this.requestHandler.request(Endpoints3.CHANNEL_PIN(channelId,messageId),{},"delete","json",{reason})}async createThreadWithMessage(channelId,messageId,options){return this.requestHandler.request(Endpoints3.CHANNEL_MESSAGE_THREADS(channelId,messageId),{},"post","json",options)}async createThreadWithoutMessage(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS(channelId),{},"post","json",options)}async joinThread(threadId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,"@me"),{},"put","json")}async addThreadMember(threadId,userId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{},"put","json")}async leaveThread(threadId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,"@me"),{},"delete","json")}removeThreadMember(threadId,userId){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{},"delete","json")}async getThreadMember(threadId,userId,withMember){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBER(threadId,userId),{with_member:withMember},"get","json")}async getThreadMembers(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREAD_MEMBERS(channelId),options,"get","json")}async getChannelArchivedPublicThreads(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PUBLIC(channelId),options,"get","json")}async getChannelArchivedPrivateThreads(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PRIVATE(channelId),options,"get","json")}async getChannelArchivedPrivateThreadsUser(channelId,options){return this.requestHandler.request(Endpoints3.CHANNEL_THREADS_ARCHIVED_PRIVATE_USER(channelId),options,"get","json")}async refreshAttachmentURLs(attachments){return this.requestHandler.request(Endpoints3.ATTACHMENTS_REFRESH_URLS,{},"post","json",{attachment_urls:Array.isArray(attachments)?attachments:[attachments]})}};module.exports=ChannelMethods;}});var require_GuildAssets=__commonJS({"src/methods/GuildAssets.ts"(exports,module){var Constants3=require_Constants(),Endpoints3=require_Endpoints(),GuildAssetsMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getEmojis(guildId){return this.requestHandler.request(Endpoints3.GUILD_EMOJIS(guildId),{},"get","json")}async getEmoji(guildId,emojiId){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"get","json")}async createEmoji(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_EMOJIS(guildId),{},"post","json",data)}async updateEmoji(guildId,emojiId,data){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"patch","json",data)}async deleteEmoji(guildId,emojiId,reason){return this.requestHandler.request(Endpoints3.GUILD_EMOJI(guildId,emojiId),{},"delete","json",{reason})}async getSticker(stickerId){return this.requestHandler.request(Endpoints3.STICKER(stickerId),{},"get","json")}async getGuildStickers(guildId){return this.requestHandler.request(Endpoints3.GUILD_STICKERS(guildId),{},"get","json")}async getGuildSticker(guildId,stickerId){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"get","json")}async createGuildSticker(guildId,data){let form=new FormData,reason=data.reason;data.reason&&delete data.reason;for(let key of Object.keys(data))await Constants3.standardAddToFormHandler(form,key,data[key]);return this.requestHandler.request(Endpoints3.GUILD_STICKERS(guildId),{},"post","multipart",form,reason?{"X-Audit-Log-Reason":reason}:void 0)}updateGuildSticker(guildId,stickerId,data){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"patch","json",data)}deleteGuildSticker(guildId,stickerId,reason){return this.requestHandler.request(Endpoints3.GUILD_STICKER(guildId,stickerId),{},"delete","json",{reason})}};module.exports=GuildAssetsMethods;}});var require_Guild=__commonJS({"src/methods/Guild.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),GuildMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async createGuild(data){return this.requestHandler.request(Endpoints3.GUILDS,{},"post","json",data)}async getGuild(guildId,withCounts){return this.requestHandler.request(Endpoints3.GUILD(guildId),{with_counts:withCounts},"get","json")}async getGuildPreview(guildId){return this.requestHandler.request(Endpoints3.GUILD_PREVIEW(guildId),{},"get","json")}async updateGuild(guildId,data){return this.requestHandler.request(Endpoints3.GUILD(guildId),{},"patch","json",data)}async deleteGuild(guildId){return this.requestHandler.request(Endpoints3.GUILD(guildId),{},"delete","json")}async getGuildChannels(guildId){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"get","json")}async createGuildChannel(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"post","json",data)}async updateChannelPositions(guildId,data,reason){return this.requestHandler.request(Endpoints3.GUILD_CHANNELS(guildId),{},"patch","json",data,reason?{"X-Audit-Log-Reason":reason}:void 0)}async listActiveThreads(guildId){return this.requestHandler.request(Endpoints3.GUILD_THREADS_ACTIVE(guildId),{},"get","json")}async getGuildMember(guildId,memberId){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"get","json")}async getGuildMembers(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_MEMBERS(guildId),options,"get","json")}async searchGuildMembers(guildId,options){if(options.limit!==void 0&&(options.limit<Constants3.SEARCH_MEMBERS_MIN_RESULTS||options.limit>Constants3.SEARCH_MEMBERS_MAX_RESULTS))throw new RangeError(`Limit for searching guild members has to be between ${Constants3.SEARCH_MEMBERS_MIN_RESULTS} and ${Constants3.SEARCH_MEMBERS_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.GUILD_MEMBERS_SEARCH(guildId),options,"get","json")}async addGuildMember(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"put","json",data)}async updateGuildMember(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"patch","json",data)}async updateSelf(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,"@me"),{},"patch","json",data)}async addGuildMemberRole(guildId,memberId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER_ROLE(guildId,memberId,roleId),{},"put","json",{reason})}async removeGuildMemberRole(guildId,memberId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER_ROLE(guildId,memberId,roleId),{},"delete","json",{reason})}async removeGuildMember(guildId,memberId,reason){return this.requestHandler.request(Endpoints3.GUILD_MEMBER(guildId,memberId),{},"delete","json",{reason})}async getGuildBans(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_BANS(guildId),options,"get","json")}async getGuildBan(guildId,memberId){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"get","json")}async createGuildBan(guildId,memberId,data){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"put","json",data)}async removeGuildBan(guildId,memberId,reason){return this.requestHandler.request(Endpoints3.GUILD_BAN(guildId,memberId),{},"delete","json",{reason})}async getGuildRoles(guildId){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"get","json")}async createGuildRole(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"post","json",data)}async updateGuildRolePositions(guildId,data,reason){return this.requestHandler.request(Endpoints3.GUILD_ROLES(guildId),{},"patch","json",data,reason?{"X-Audit-Log-Reason":reason}:void 0)}async updateGuildRole(guildId,roleId,data){return this.requestHandler.request(Endpoints3.GUILD_ROLE(guildId,roleId),{},"patch","json",data)}async removeGuildRole(guildId,roleId,reason){return this.requestHandler.request(Endpoints3.GUILD_ROLE(guildId,roleId),{},"delete","json",{reason})}async getGuildPruneCount(guildId,options){return this.requestHandler.request(Endpoints3.GUILD_PRUNE(guildId),options,"get","json")}async startGuildPrune(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_PRUNE(guildId),{},"post","json",data)}async getGuildVoiceRegions(guildId){return this.requestHandler.request(Endpoints3.GUILD_VOICE_REGIONS(guildId),{},"get","json")}async getGuildInvites(guildId){return this.requestHandler.request(Endpoints3.GUILD_INVITES(guildId),{},"get","json")}async getGuildIntegrations(guildId){return this.requestHandler.request(Endpoints3.GUILD_INTEGRATIONS(guildId),{},"get","json")}async removeGuildIntegration(guildId,integrationId,reason){return this.requestHandler.request(Endpoints3.GUILD_INTEGRATION(guildId,integrationId),{},"delete","json",{reason})}async getGuildWidgetSettings(guildId){return this.requestHandler.request(Endpoints3.GUILD_WIDGET_SETTINGS(guildId),{},"get","json")}async updateGuildWidgetSettings(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_WIDGET_SETTINGS(guildId),{},"patch","json",data)}async getGuildWidget(guildId){return this.requestHandler.request(Endpoints3.GUILD_WIDGET(guildId),{},"get","json")}async getGuildVanityURL(guildId){return this.requestHandler.request(Endpoints3.GUILD_VANITY(guildId),{},"get","json")}async getGuildWelcomeScreen(guildId){return this.requestHandler.request(Endpoints3.GUILD_WELCOME_SCREEN(guildId),{},"get","json")}async editGuildWelcomeScreen(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_WELCOME_SCREEN(guildId),{},"patch","json",data)}updateCurrentUserVoiceState(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_VOICE_STATE_USER(guildId,"@me"),{},"patch","json",data)}updateUserVoiceState(guildId,userId,data){return this.requestHandler.request(Endpoints3.GUILD_VOICE_STATE_USER(guildId,userId),{},"patch","json",data)}};module.exports=GuildMethods;}});var require_GuildScheduledEvent=__commonJS({"src/methods/GuildScheduledEvent.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),GuildScheduledEventMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async listGuildScheduledEvents(guildId,withCounts){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENTS(guildId),{with_user_count:withCounts},"get","json")}async createGuildScheduledEvent(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENTS(guildId),{},"post","json",data)}async getGuildScheduledEvent(guildId,eventId,withCounts){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"get","json",{with_user_count:withCounts})}async editGuildScheduledEvent(guildId,eventId,data){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"patch","json",data)}async deleteGuildScheduledEvent(guildId,eventId){return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT(guildId,eventId),{},"delete","json")}async getGuildScheduledEventUsers(guildId,eventId,options){if((options==null?void 0:options.limit)!==void 0&&(options.limit<Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS||options.limit>Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS))throw new RangeError(`The maximum amount of users that may be requested has to be between ${Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MIN_RESULTS} and ${Constants3.GET_GUILD_SCHEDULED_EVENT_USERS_MAX_RESULTS}`);return this.requestHandler.request(Endpoints3.GUILD_SCHEDULED_EVENT_USERS(guildId,eventId),options,"get","json")}};module.exports=GuildScheduledEventMethods;}});var require_GuildTemplate=__commonJS({"src/methods/GuildTemplate.ts"(exports,module){var Endpoints3=require_Endpoints(),GuildTemplateMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}getGuildTemplate(code){return this.requestHandler.request(Endpoints3.TEMPLATE(code),{},"get","json")}createGuildFromGuildTemplate(code,options){return this.requestHandler.request(Endpoints3.TEMPLATE(code),{},"post","json",options)}getGuildTemplates(guildId){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATES(guildId),{},"get","json")}createGuildTemplate(guildId,data){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATES(guildId),{},"post","json",data)}syncGuildTemplate(guildId,code){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"put","json")}modifyGuildTemplate(guildId,code,data){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"patch","json",data)}deleteGuildTemplate(guildId,code){return this.requestHandler.request(Endpoints3.GUILD_TEMPLATE(guildId,code),{},"delete","json")}};module.exports=GuildTemplateMethods;}});var require_Interaction=__commonJS({"src/methods/Interaction.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),InteractionMethods=class{constructor(requestHandler,webhooks){this.requestHandler=requestHandler;this.webhooks=webhooks;}getApplicationCommands(appId,withLocalizations){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{with_localizations:withLocalizations},"get","json")}createApplicationCommand(appId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{},"post","json",data)}getApplicationCommand(appId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"get","json")}editApplicationCommand(appId,cmdId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"patch","json",data)}deleteApplicationCommand(appId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_COMMAND(appId,cmdId),{},"delete","json")}bulkOverwriteApplicationCommands(appId,data){return this.requestHandler.request(Endpoints3.APPLICATION_COMMANDS(appId),{},"put","json",data)}getGuildApplicationCommands(appId,guildId,withLocalizations){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{with_localizations:withLocalizations},"get","json")}createGuildApplicationCommand(appId,guildId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{},"post","json",data)}getGuildApplicationCommand(appId,guildId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"get","json")}editGuildApplicationCommand(appId,guildId,cmdId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"patch","json",data)}deleteGuildApplicationCommand(appId,guildId,cmdId){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND(appId,guildId,cmdId),{},"delete","json")}bulkOverwriteGuildApplicationCommands(appId,guildId,data){return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS(appId,guildId),{},"put","json",data)}getGuildApplicationCommandPermissions(appId,guildId,cmdId){return cmdId?this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId,guildId,cmdId),{},"get","json"):this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMANDS_PERMISSIONS(appId,guildId),{},"get","json")}editGuildApplicationCommandPermissions(appId,guildId,cmdId,permissions){let payload={permissions};return this.requestHandler.request(Endpoints3.APPLICATION_GUILD_COMMAND_PERMISSIONS(appId,guildId,cmdId),{},"put","json",payload)}async createInteractionResponse(interactionId,token,data){return data.files?this.requestHandler.request(Endpoints3.INTERACTION_CALLBACK(interactionId,token),{},"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.INTERACTION_CALLBACK(interactionId,token),{},"post","json",data)}getOriginalInteractionResponse(appId,token){return this.webhooks.getWebhookMessage(appId,token,"@original")}editOriginalInteractionResponse(appId,token,data){return this.webhooks.editWebhookMessage(appId,token,"@original",data)}deleteOriginalInteractionResponse(appId,token){return this.webhooks.deleteWebhookMessage(appId,token,"@original")}createFollowupMessage(appId,token,data){return this.webhooks.executeWebhook(appId,token,data)}getFollowupMessage(appId,token,messageId){return this.webhooks.getWebhookMessage(appId,token,messageId)}editFollowupMessage(appId,token,messageId,data){return this.webhooks.editWebhookMessage(appId,token,messageId,data)}deleteFollowupMessage(appId,token,messageId){return this.webhooks.deleteWebhookMessage(appId,token,messageId)}};module.exports=InteractionMethods;}});var require_Invite=__commonJS({"src/methods/Invite.ts"(exports,module){var Endpoints3=require_Endpoints(),InviteMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getInvite(inviteId,options){return this.requestHandler.request(Endpoints3.INVITES(inviteId),options,"get","json")}async deleteInvite(inviteId){return this.requestHandler.request(Endpoints3.INVITES(inviteId),{},"delete","json")}};module.exports=InviteMethods;}});var require_StageInstance=__commonJS({"src/methods/StageInstance.ts"(exports,module){var Endpoints3=require_Endpoints(),StageInstanceMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async createStageInstance(data){return this.requestHandler.request(Endpoints3.STAGE_INSTANCES,{},"post","json",data)}async getStageInstance(channelId){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"get","json")}async editStageInstance(channelId,data){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"patch","json",data)}async deleteStageInstance(channelId,reason){return this.requestHandler.request(Endpoints3.STAGE_INSTANCE_CHANNEL(channelId),{},"delete","json",{reason})}};module.exports=StageInstanceMethods;}});var require_User=__commonJS({"src/methods/User.ts"(exports,module){var Endpoints3=require_Endpoints(),UserMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getSelf(){return this.requestHandler.request(Endpoints3.USER("@me"),{},"get","json")}async getUser(userId){return this.requestHandler.request(Endpoints3.USER(userId),{},"get","json")}async updateSelf(data){return this.requestHandler.request(Endpoints3.USER("@me"),{},"patch","json",data)}async getGuilds(options){return this.requestHandler.request(Endpoints3.USER_GUILDS("@me"),{},"get","json",options)}async leaveGuild(guildId){return this.requestHandler.request(Endpoints3.USER_GUILD("@me",guildId),{},"delete","json")}async createDirectMessageChannel(userId){return this.requestHandler.request(Endpoints3.USER_CHANNELS("@me"),{},"post","json",{recipient_id:userId})}async createGroupDirectMessageChannel(data){return this.requestHandler.request(Endpoints3.USER_CHANNELS("@me"),{},"post","json",data)}async getConnections(){return this.requestHandler.request(Endpoints3.USER_CONNECTIONS("@me"),{},"get","json")}async getApplicationRoleConnection(appId){return this.requestHandler.request(Endpoints3.USER_APPLICATION_ROLE_CONNECTION("@me",appId),{},"get","json")}async updateApplicationRoleConnection(appId,data){return this.requestHandler.request(Endpoints3.USER_APPLICATION_ROLE_CONNECTION("@me",appId),{},"put","json",data)}};module.exports=UserMethods;}});var require_Voice=__commonJS({"src/methods/Voice.ts"(exports,module){var Endpoints3=require_Endpoints(),VoiceMethods=class{constructor(requestHandler){this.requestHandler=requestHandler;}async getVoiceRegions(){return this.requestHandler.request(Endpoints3.VOICE_REGIONS,{},"get","json")}async getCurrentUserVoiceState(guildId){return this.requestHandler.request(Endpoints3.USER_GUILD_VOICE_STATE(guildId,"@me"),{},"get","json")}async getUserVoiceState(guildId,userId){return this.requestHandler.request(Endpoints3.USER_GUILD_VOICE_STATE(guildId,userId),{},"get","json")}};module.exports=VoiceMethods;}});var require_Webhook=__commonJS({"src/methods/Webhook.ts"(exports,module){var Endpoints3=require_Endpoints(),Constants3=require_Constants(),WebhookMethods=class{constructor(requestHandler,disableEveryone){this.requestHandler=requestHandler;this.disableEveryone=disableEveryone;}async createWebhook(channelId,data){return this.requestHandler.request(Endpoints3.CHANNEL_WEBHOOKS(channelId),{},"post","json",data)}async getChannelWebhooks(channelId){return this.requestHandler.request(Endpoints3.CHANNEL_WEBHOOKS(channelId),{},"get","json")}async getGuildWebhooks(guildId){return this.requestHandler.request(Endpoints3.GUILD_WEBHOOKS(guildId),{},"get","json")}async getWebhook(webhookId,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"get","json"):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"get","json")}async updateWebhook(webhookId,data,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"patch","json",data):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"patch","json",data)}async deleteWebhook(webhookId,token){return token?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),{},"delete","json"):this.requestHandler.request(Endpoints3.WEBHOOK(webhookId),{},"delete","json")}async executeWebhook(webhookId,token,data,options){if(typeof data!="string"&&!data.content&&!data.embeds&&!data.components&&!data.files&&!data.poll)throw new Error("Missing content, embeds, components, files, or poll");return typeof data=="string"&&(data={content:data}),data.content&&((options==null?void 0:options.disableEveryone)??this.disableEveryone)&&(data.content=Constants3.replaceEveryone(data.content)),options&&delete options.disableEveryone,data.files?this.requestHandler.request(`${Endpoints3.WEBHOOK_TOKEN(webhookId,token)}`,options,"post","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN(webhookId,token),options,"post","json",data)}async executeWebhookSlack(webhookId,token,data,options){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_SLACK(webhookId,token),options,"post","json",data)}async executeWebhookGitHub(webhookId,token,data,options={}){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_GITHUB(webhookId,token),options,"post","json",data)}async getWebhookMessage(webhookId,token,messageId,threadId){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"get","json")}async editWebhookMessage(webhookId,token,messageId,data){let threadId;return data.thread_id&&(threadId=data.thread_id),delete data.thread_id,data.files?this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"patch","multipart",await Constants3.standardMultipartHandler(data)):this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"patch","json",data)}async deleteWebhookMessage(webhookId,token,messageId,threadId){return this.requestHandler.request(Endpoints3.WEBHOOK_TOKEN_MESSAGE(webhookId,token,messageId),{thread_id:threadId},"delete","json")}};module.exports=WebhookMethods;}});var require_tokenless=__commonJS({"src/tokenless.ts"(exports,module){var Endpoints3=require_Endpoints();async function getOauth2Token(clientId,redirectURI,clientSecret,code){return (await fetch(`${Endpoints3.BASE_HOST}${Endpoints3.OAUTH2_TOKEN}`,{method:"POST",body:new URLSearchParams({grant_type:"authorization_code",code,client_id:clientId,client_secret:clientSecret,redirect_uri:redirectURI})})).json()}module.exports={getOauth2Token};}});var require_SnowTransfer=__commonJS({"src/SnowTransfer.ts"(exports$1,module){init_RequestHandler();var AuditLogMethods=require_AuditLog(),AutoModerationMethods=require_AutoModeration(),BotMethods=require_Bot(),ChannelMethods=require_Channel(),GuildAssetsMethods=require_GuildAssets(),GuildMethods=require_Guild(),GuildScheduledEventMethods=require_GuildScheduledEvent(),GuildTemplateMethods=require_GuildTemplate(),InteractionMethods=require_Interaction(),InviteMethods=require_Invite(),StageInstanceMethods=require_StageInstance(),UserMethods=require_User(),VoiceMethods=require_Voice(),WebhookMethods=require_Webhook(),Endpoints3=require_Endpoints(),Constants3=require_Constants(),SnowTransfer=class{constructor(token,options){if(typeof token=="string"&&token==="")throw new Error("Missing token");token&&!token.startsWith("Bot")&&!token.startsWith("Bearer")&&(token=`Bot ${token}`),this.options={baseHost:Endpoints3.BASE_HOST,disableEveryone:!1,bypassBuckets:!1,retryRequests:!1,retryLimit:Constants3.DEFAULT_RETRY_LIMIT,...options},this.token=token,this.ratelimiter=new exports.Ratelimiter,this.requestHandler=new exports.RequestHandler(this.ratelimiter,{token:this.token,baseHost:this.options.baseHost,bypassBuckets:this.options.bypassBuckets,retryFailed:this.options.retryRequests,retryLimit:this.options.retryLimit}),this.channel=new ChannelMethods(this.requestHandler,this.options.disableEveryone),this.user=new UserMethods(this.requestHandler),this.guildAssets=new GuildAssetsMethods(this.requestHandler),this.webhook=new WebhookMethods(this.requestHandler,this.options.disableEveryone),this.guild=new GuildMethods(this.requestHandler),this.guildScheduledEvent=new GuildScheduledEventMethods(this.requestHandler),this.guildTemplate=new GuildTemplateMethods(this.requestHandler),this.interaction=new InteractionMethods(this.requestHandler,this.webhook),this.invite=new InviteMethods(this.requestHandler),this.voice=new VoiceMethods(this.requestHandler),this.bot=new BotMethods(this.requestHandler),this.auditLog=new AuditLogMethods(this.requestHandler),this.stageInstance=new StageInstanceMethods(this.requestHandler),this.autoMod=new AutoModerationMethods(this.requestHandler);}};module.exports=SnowTransfer;}});init_RequestHandler();var AuditLogMethods2=require_AuditLog(),AutoModerationMethods2=require_AutoModeration(),BotMethods2=require_Bot(),ChannelMethods2=require_Channel(),GuildAssetsMethods2=require_GuildAssets(),GuildMethods2=require_Guild(),GuildScheduledEventMethods2=require_GuildScheduledEvent(),GuildTemplateMethods2=require_GuildTemplate(),InteractionMethods2=require_Interaction(),InviteMethods2=require_Invite(),StageInstanceMethods2=require_StageInstance(),UserMethods2=require_User(),VoiceMethods2=require_Voice(),WebhookMethods2=require_Webhook(),tokenless2=require_tokenless(),Constants2=require_Constants(),Endpoints2=require_Endpoints(),SnowTransfer2=require_SnowTransfer();
9
9
 
10
10
  exports.AuditLogMethods = AuditLogMethods2;
11
11
  exports.AutoModerationMethods = AutoModerationMethods2;