cloudstorm 0.4.1 → 0.5.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/README.md CHANGED
@@ -47,6 +47,12 @@ So an event you receive may look like this:
47
47
  }
48
48
  }
49
49
  ```
50
+
51
+ ## Sharding for VERY large bots
52
+ CloudStorm supports max_concurrency, but does not automatically attempt to fetch new info related to max_concurrency. You are expected to re-fetch this data at your own discretion as Discord does not recommend caching the data for extended periods as it can change as your client leaves and joins guilds and possibly cause rate limit errors.
53
+
54
+ You should start your clusters 1 by 1 as rate limit info is only fetched on Client.connect or when you manually call Client.fetchConnectInfo when /gateway/bot is fetched
55
+
50
56
  ### Microservice Bots:
51
57
  I've written a general whitepaper on the idea of microservice bots, which you can find on gist: [Microservice Bot Whitepaper](https://gist.github.com/DasWolke/c9d7dfe6a78445011162a12abd32091d)
52
58
 
package/dist/Client.d.ts CHANGED
@@ -54,13 +54,20 @@ declare class Client extends EventEmitter {
54
54
  * @returns This function returns a promise which is solely used for awaiting the getGateway() method's return value.
55
55
  */
56
56
  connect(): Promise<void>;
57
+ /**
58
+ * Method to grab initial connection info from Discord.
59
+ * Should only be called automatically by the lib unless you are a large bot with a max_concurrency not equal to 1.
60
+ * If you are a large bot, you should call this method at a rate of your own discretion to update your max_concurrency cached value to have up to date bucket info.
61
+ * @returns The amount of shards the bot should spawn if set to auto.
62
+ */
63
+ fetchConnectInfo(): Promise<number>;
57
64
  /**
58
65
  * Get the gateway endpoint to connect to.
59
66
  * @returns String url with the Gateway Endpoint to connect to.
60
67
  */
61
68
  getGateway(): Promise<string>;
62
69
  /**
63
- * Get the GatewayData including recommended amount of shards.
70
+ * Get the GatewayData including recommended amount of shards and other helpful info.
64
71
  * @returns Object with url and shards to use to connect to discord.
65
72
  */
66
73
  getGatewayBot(): Promise<{
package/dist/Client.js CHANGED
@@ -7,6 +7,7 @@ const events_1 = require("events");
7
7
  const Constants_1 = __importDefault(require("./Constants"));
8
8
  const snowtransfer_1 = require("snowtransfer");
9
9
  const ShardManager_1 = __importDefault(require("./ShardManager"));
10
+ const RatelimitBucket_1 = __importDefault(require("./structures/RatelimitBucket"));
10
11
  /**
11
12
  * Main class used for receiving events and interacting with the Discord gateway.
12
13
  */
@@ -21,9 +22,7 @@ class Client extends events_1.EventEmitter {
21
22
  throw new Error("Missing token!");
22
23
  this.options = {
23
24
  largeGuildThreshold: 250,
24
- firstShardId: 0,
25
- lastShardId: 0,
26
- shardAmount: 1,
25
+ shards: "auto",
27
26
  reconnect: true,
28
27
  intents: 0,
29
28
  token: "",
@@ -45,10 +44,40 @@ class Client extends events_1.EventEmitter {
45
44
  * @returns This function returns a promise which is solely used for awaiting the getGateway() method's return value.
46
45
  */
47
46
  async connect() {
48
- const gateway = await this.getGateway();
49
- this._updateEndpoint(gateway);
47
+ const initial = await this.fetchConnectInfo();
48
+ if (this.options.shards === "auto")
49
+ this.options.totalShards = initial;
50
50
  this.shardManager.spawn();
51
51
  }
52
+ /**
53
+ * Method to grab initial connection info from Discord.
54
+ * Should only be called automatically by the lib unless you are a large bot with a max_concurrency not equal to 1.
55
+ * If you are a large bot, you should call this method at a rate of your own discretion to update your max_concurrency cached value to have up to date bucket info.
56
+ * @returns The amount of shards the bot should spawn if set to auto.
57
+ */
58
+ async fetchConnectInfo() {
59
+ const gateway = await this.getGatewayBot();
60
+ this._updateEndpoint(gateway.url);
61
+ const oldQueueConcurrency = [];
62
+ const oldQueueIdentify = [];
63
+ if (this.shardManager.concurrencyBucket && this.shardManager.concurrencyBucket.fnQueue.length) {
64
+ oldQueueConcurrency.push(...this.shardManager.concurrencyBucket.fnQueue.map(i => [i.fn, i.callback]));
65
+ this.shardManager.concurrencyBucket.dropQueue();
66
+ }
67
+ if (this.shardManager.identifyBucket.fnQueue.length)
68
+ oldQueueIdentify.push(...this.shardManager.identifyBucket.fnQueue.map(i => [i.fn, i.callback]));
69
+ this.shardManager.identifyBucket.dropQueue();
70
+ this.shardManager.concurrencyBucket = new RatelimitBucket_1.default(gateway.session_start_limit.max_concurrency, 5000);
71
+ this.shardManager.identifyBucket.remaining = gateway.session_start_limit.remaining;
72
+ this.shardManager.identifyBucket.limitReset = gateway.session_start_limit.reset_after;
73
+ for (const [fn, callback] of oldQueueConcurrency) {
74
+ this.shardManager.concurrencyBucket.queue(fn).then(callback);
75
+ }
76
+ for (const [fn, callback] of oldQueueIdentify) {
77
+ this.shardManager.identifyBucket.queue(fn).then(callback);
78
+ }
79
+ return gateway.shards;
80
+ }
52
81
  /**
53
82
  * Get the gateway endpoint to connect to.
54
83
  * @returns String url with the Gateway Endpoint to connect to.
@@ -58,7 +87,7 @@ class Client extends events_1.EventEmitter {
58
87
  return gatewayData.url;
59
88
  }
60
89
  /**
61
- * Get the GatewayData including recommended amount of shards.
90
+ * Get the GatewayData including recommended amount of shards and other helpful info.
62
91
  * @returns Object with url and shards to use to connect to discord.
63
92
  */
64
93
  async getGatewayBot() {
package/dist/Intents.d.ts CHANGED
@@ -15,6 +15,7 @@ export declare const flags: {
15
15
  DIRECT_MESSAGE_REACTIONS: number;
16
16
  DIRECT_MESSAGE_TYPING: number;
17
17
  MESSAGE_CONTENT: number;
18
+ GUILD_SCHEDULED_EVENTS: number;
18
19
  };
19
20
  export declare const privileged: number;
20
21
  export declare const all: number;
package/dist/Intents.js CHANGED
@@ -18,8 +18,9 @@ exports.flags = {
18
18
  DIRECT_MESSAGE_REACTIONS: 1 << 13,
19
19
  DIRECT_MESSAGE_TYPING: 1 << 14,
20
20
  MESSAGE_CONTENT: 1 << 15,
21
+ GUILD_SCHEDULED_EVENTS: 1 >> 16
21
22
  };
22
- exports.privileged = exports.flags.GUILD_MEMBERS | exports.flags.GUILD_PRESENCES | exports.flags.GUILD_MESSAGES | exports.flags.MESSAGE_CONTENT;
23
+ exports.privileged = exports.flags.GUILD_MEMBERS | exports.flags.GUILD_PRESENCES | exports.flags.MESSAGE_CONTENT;
23
24
  exports.all = Object.values(exports.flags).reduce((acc, p) => acc | p, 0);
24
25
  exports.non_privileged = exports.all & ~exports.privileged;
25
26
  function resolve(bit = 0) {
@@ -1,5 +1,5 @@
1
- /// <reference types="node" />
2
1
  import Shard from "./Shard";
2
+ import RatelimitBucket from "./structures/RateLimitBucket";
3
3
  /**
4
4
  * Class used for managing shards for the user.
5
5
  *
@@ -11,12 +11,8 @@ declare class ShardManager {
11
11
  shards: {
12
12
  [id: number]: Shard;
13
13
  };
14
- connectQueue: Array<{
15
- action: string;
16
- shard: Shard;
17
- }>;
18
- lastConnectionAttempt: number | null;
19
- connectQueueInterval: NodeJS.Timeout;
14
+ identifyBucket: RatelimitBucket;
15
+ concurrencyBucket: RatelimitBucket | null;
20
16
  static readonly default: typeof ShardManager;
21
17
  /**
22
18
  * Create a new ShardManager.
@@ -30,15 +26,6 @@ declare class ShardManager {
30
26
  * Disconnect all shards facilitated by this manager.
31
27
  */
32
28
  disconnect(): void;
33
- /**
34
- * Actually connect/re-identify a single shard spawned by this manager by calling it's connect() or identify() method and reset the connection timer.
35
- * @param data Object with a shard and action key.
36
- */
37
- private _connectShard;
38
- /**
39
- * Check if there are shards that have been spawned by this manager that are not connected yet and connect them if over 6 seconds have passed since the last attempt.
40
- */
41
- private _checkQueue;
42
29
  /**
43
30
  * Add event listeners to a shard to that the manager can act on received events.
44
31
  * @param shard Shard to add the event listeners to.
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  const Shard_1 = __importDefault(require("./Shard"));
6
+ const RateLimitBucket_1 = __importDefault(require("./structures/RateLimitBucket"));
6
7
  /**
7
8
  * Class used for managing shards for the user.
8
9
  *
@@ -13,28 +14,23 @@ class ShardManager {
13
14
  * Create a new ShardManager.
14
15
  */
15
16
  constructor(client) {
17
+ this.concurrencyBucket = null;
16
18
  this.client = client;
17
19
  this.options = client.options;
18
- if (!this.options.connectQueueInterval)
19
- this.options.connectQueueInterval = 1000 * 5;
20
20
  this.shards = {};
21
- this.connectQueue = [];
22
- this.lastConnectionAttempt = null;
23
- this.connectQueueInterval = setInterval(() => {
24
- this._checkQueue();
25
- }, this.options.connectQueueInterval);
21
+ this.identifyBucket = new RateLimitBucket_1.default(1000, 1000 * 60 * 60 * 24, 1000 * 60 * 60 * 24);
26
22
  }
27
23
  /**
28
24
  * Create shard instances and add them to the connection queue.
29
25
  */
30
26
  spawn() {
31
- const firstShardID = this.options.firstShardId ? this.options.firstShardId : 0;
32
- const lastShardId = this.options.lastShardId ? this.options.lastShardId : 0;
33
- for (let i = firstShardID; i < lastShardId + 1; i++) {
34
- this.client.emit("debug", `Spawned shard ${i}`);
35
- this.shards[i] = new Shard_1.default(i, this.client);
36
- this.connectQueue.push({ action: "connect", shard: this.shards[i] });
37
- this._addListener(this.shards[i]);
27
+ if (!this.concurrencyBucket)
28
+ throw new Error("Trying to spawn shards without calling Client.connect()");
29
+ for (const id of (this.options.shards === "auto" ? Array(this.options.totalShards).fill(0).map((_, index) => index) : this.options.shards || [0])) {
30
+ this.client.emit("debug", `Spawned shard ${id}`);
31
+ this.shards[id] = new Shard_1.default(id, this.client);
32
+ this._addListener(this.shards[id]);
33
+ this.shards[id].connector.connect();
38
34
  }
39
35
  }
40
36
  /**
@@ -42,42 +38,7 @@ class ShardManager {
42
38
  */
43
39
  disconnect() {
44
40
  for (const shardKey in this.shards) {
45
- if (this.shards[shardKey]) {
46
- const shard = this.shards[shardKey];
47
- shard.disconnect();
48
- }
49
- }
50
- }
51
- /**
52
- * Actually connect/re-identify a single shard spawned by this manager by calling it's connect() or identify() method and reset the connection timer.
53
- * @param data Object with a shard and action key.
54
- */
55
- _connectShard(data) {
56
- const { action, shard } = data;
57
- this.client.emit("debug", `${action === "connect" ? "Connecting" : "Identifying"} Shard ${shard.id} Status: ${shard.connector.status} Ready: ${shard.ready}`);
58
- if ((this.lastConnectionAttempt || 0) <= Date.now() - 6000) {
59
- if (action === "identify") {
60
- this.lastConnectionAttempt = Date.now();
61
- shard.connector.identify(true);
62
- }
63
- else {
64
- if (shard.connector.status !== "connecting" && !shard.ready) {
65
- this.lastConnectionAttempt = Date.now();
66
- shard.connect();
67
- }
68
- }
69
- }
70
- }
71
- /**
72
- * Check if there are shards that have been spawned by this manager that are not connected yet and connect them if over 6 seconds have passed since the last attempt.
73
- */
74
- _checkQueue() {
75
- // this.client.emit("debug", `Checking queue Length: ${this.connectQueue.length} LastAttempt: ${this.lastConnectionAttempt} Current Time: ${Date.now()}`);
76
- if (this.connectQueue.length > 0 && ((this.lastConnectionAttempt || 0) <= Date.now() - 6000)) {
77
- const toConnect = this.connectQueue.splice(0, 1);
78
- for (const shard of toConnect) {
79
- this._connectShard(shard);
80
- }
41
+ this.shards[shardKey].disconnect();
81
42
  }
82
43
  }
83
44
  /**
@@ -86,25 +47,25 @@ class ShardManager {
86
47
  */
87
48
  _addListener(shard) {
88
49
  shard.on("ready", (resume) => {
89
- this.shards[shard.id].ready = true;
50
+ shard.ready = true;
90
51
  this.client.emit("debug", `Shard ${shard.id} ${resume ? "has resumed" : "is ready"}`);
91
52
  this.client.emit("shardReady", { id: shard.id, ready: !resume });
92
53
  this._checkReady();
93
54
  });
55
+ shard.on("queueIdentify", (shardId) => {
56
+ var _a;
57
+ if (!this.shards[shardId])
58
+ return this.client.emit("debug", `Received a queueIdentify event for shard ${shardId} but it does not exist. Was it removed?`);
59
+ this.client.emit("debug", `Shard ${shardId} is ready to identify`);
60
+ (_a = this.concurrencyBucket) === null || _a === void 0 ? void 0 : _a.queue(() => {
61
+ this.identifyBucket.queue(() => this.shards[shardId].connector.identify());
62
+ });
63
+ });
94
64
  shard.on("disconnect", (code, reason, gracefulClose) => {
95
65
  this.client.emit("debug", `Websocket of shard ${shard.id} closed with code ${code} and reason: ${reason ? reason : "None"}`);
96
- if (code === 1000 && gracefulClose) {
97
- this._checkDisconnect();
98
- return;
99
- }
100
- this.connectQueue.push({ action: "connect", shard });
101
- });
102
- shard.on("queueIdentify", (shardId) => {
103
- if (!this.shards[shardId]) {
104
- this.client.emit("debug", `Received a queueIdentify event for not existing shard ${shardId}`);
105
- return;
106
- }
107
- this.connectQueue.unshift({ action: "identify", shard: this.shards[shardId] });
66
+ if (code === 1000 && gracefulClose)
67
+ return this._checkDisconnect();
68
+ shard.connector.connect();
108
69
  });
109
70
  }
110
71
  /**
package/dist/Types.d.ts CHANGED
@@ -27,13 +27,20 @@ export interface IGatewayMessage extends IWSMessage {
27
27
  }
28
28
  export interface IClientOptions {
29
29
  largeGuildThreshold?: number;
30
- firstShardId?: number;
31
- lastShardId?: number;
32
- shardAmount?: number;
30
+ /**
31
+ * A note on "auto" sharding:
32
+ * "auto" will always start at 0 as there is no way to know the next available shard id.
33
+ * If you have more than one "cluster", you must specify an Array of shard ids. along with totalShards
34
+ */
35
+ shards?: "auto" | Array<number>;
36
+ /**
37
+ * Ignored and overwrote if using "auto" sharding.
38
+ * The total number of shards expected across all clusters.
39
+ */
40
+ totalShards?: number;
33
41
  reconnect?: boolean;
34
42
  initialPresence?: import("discord-typings").GatewayPresenceUpdate;
35
43
  intents?: IntentResolvable;
36
- connectQueueInterval?: number;
37
44
  snowtransferInstance?: import("snowtransfer").SnowTransfer;
38
45
  ws?: IClientWSOptions;
39
46
  }
@@ -43,6 +43,7 @@ declare class DiscordConnector extends EventEmitter {
43
43
  lastACKAt: number;
44
44
  lastHeartbeatSend: number;
45
45
  latency: number;
46
+ private _closing;
46
47
  static readonly default: typeof DiscordConnector;
47
48
  /**
48
49
  * Create a new Discord Connector.
@@ -29,6 +29,7 @@ class DiscordConnector extends events_1.EventEmitter {
29
29
  this.lastACKAt = 0;
30
30
  this.lastHeartbeatSend = 0;
31
31
  this.latency = 0;
32
+ this._closing = false;
32
33
  this.id = id;
33
34
  this.client = client;
34
35
  this.options = client.options;
@@ -48,13 +49,15 @@ class DiscordConnector extends events_1.EventEmitter {
48
49
  * Connect to Discord.
49
50
  */
50
51
  connect() {
52
+ this._closing = false;
51
53
  return this.betterWs.connect();
52
54
  }
53
55
  /**
54
56
  * Close the websocket connection and disconnect.
55
57
  */
56
58
  async disconnect() {
57
- return this.betterWs.close();
59
+ this._closing = true;
60
+ return this.betterWs.close(1000, "Disconnected by User");
58
61
  }
59
62
  /**
60
63
  * Called with a parsed Websocket message to execute further actions.
@@ -94,6 +97,7 @@ class DiscordConnector extends events_1.EventEmitter {
94
97
  }
95
98
  break;
96
99
  case Constants_1.GATEWAY_OP_CODES.HELLO:
100
+ this.client.emit("debug", `Shard ${this.id} received HELLO`);
97
101
  this.heartbeat();
98
102
  this.heartbeatInterval = message.d.heartbeat_interval;
99
103
  this.heartbeatTimeout = setInterval(() => {
@@ -108,8 +112,7 @@ class DiscordConnector extends events_1.EventEmitter {
108
112
  this.heartbeat();
109
113
  }, this.heartbeatInterval);
110
114
  this._trace = message.d._trace;
111
- this.identify();
112
- this.client.emit("debug", `Shard ${this.id} received HELLO`);
115
+ this.emit("queueIdentify", this.id);
113
116
  break;
114
117
  case Constants_1.GATEWAY_OP_CODES.HEARTBEAT_ACK:
115
118
  this.lastACKAt = Date.now();
@@ -128,7 +131,7 @@ class DiscordConnector extends events_1.EventEmitter {
128
131
  reconnecting = true;
129
132
  if (this.betterWs.status === 2)
130
133
  void this.client.emit("error", `Client was attempting to ${resume ? "resume" : "reconnect"} while the WebSocket was still in the connecting state. This should never happen.`);
131
- await this.betterWs.close();
134
+ await this.betterWs.close(resume ? 4000 : 1012, "reconnecting");
132
135
  if (resume)
133
136
  this.clearHeartBeat();
134
137
  else
@@ -163,6 +166,7 @@ class DiscordConnector extends events_1.EventEmitter {
163
166
  void this.client.emit("debug", "Client was attempting to identify when the ws was not open");
164
167
  if (this.sessionId && !force)
165
168
  return this.resume();
169
+ this.client.emit("debug", `Shard ${this.id} is identifying`);
166
170
  this.status = "identifying";
167
171
  this.emit("stateChange", "identifying");
168
172
  const data = {
@@ -175,7 +179,7 @@ class DiscordConnector extends events_1.EventEmitter {
175
179
  $device: "CloudStorm"
176
180
  },
177
181
  large_threshold: this.options.largeGuildThreshold,
178
- shard: [this.id, this.options.shardAmount],
182
+ shard: [this.id, this.options.totalShards || 1],
179
183
  intents: this.options.intents ? Intents_1.default.resolve(this.options.intents) : 0
180
184
  }
181
185
  };
@@ -189,6 +193,7 @@ class DiscordConnector extends events_1.EventEmitter {
189
193
  async resume() {
190
194
  if (this.betterWs.status !== 1)
191
195
  void this.client.emit("debug", "Client was attempting to resume when the ws was not open");
196
+ this.client.emit("debug", `Shard ${this.id} is resuming`);
192
197
  this.status = "resuming";
193
198
  this.emit("stateChange", "resuming");
194
199
  return this.betterWs.sendMessage({
@@ -306,8 +311,9 @@ class DiscordConnector extends events_1.EventEmitter {
306
311
  }
307
312
  }
308
313
  // Don't try to reconnect when true
309
- if (code === 1000 && reason === "Disconnected by User")
314
+ if (code === 1000 && this._closing)
310
315
  gracefulClose = true;
316
+ this._closing = false;
311
317
  if (gracefulClose) {
312
318
  this.clearHeartBeat();
313
319
  this.betterWs.removeAllListeners();
@@ -39,7 +39,7 @@ declare class BetterWs extends EventEmitter {
39
39
  constructor(address: string, options: import("../Types").IClientWSOptions);
40
40
  get status(): 1 | 2 | 3 | 4;
41
41
  connect(): Promise<void>;
42
- close(): Promise<void>;
42
+ close(code: number, reason?: string): Promise<void>;
43
43
  sendMessage(data: import("../Types").IWSMessage): Promise<void>;
44
44
  private _write;
45
45
  private _onError;
@@ -2,6 +2,9 @@
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
+ // This ultra light weigth WS code is a slimmed down version originally found at https://github.com/timotejroiko/tiny-discord
6
+ // Modifications and use of this code was granted for this project by the author, Timotej Roiko.
7
+ // A major thank you to Tim for better performing software.
5
8
  const events_1 = require("events");
6
9
  const crypto_1 = require("crypto");
7
10
  const zlib_1 = require("zlib");
@@ -95,7 +98,7 @@ class BetterWs extends events_1.EventEmitter {
95
98
  req.end();
96
99
  });
97
100
  }
98
- async close() {
101
+ async close(code, reason) {
99
102
  const internal = this._internal;
100
103
  if (internal.closePromise)
101
104
  return internal.closePromise;
@@ -104,7 +107,8 @@ class BetterWs extends events_1.EventEmitter {
104
107
  let resolver;
105
108
  const promise = new Promise(resolve => {
106
109
  resolver = resolve;
107
- this._write(Buffer.allocUnsafe(0), 8);
110
+ const from = Buffer.from([code >> 8, code & 255]);
111
+ this._write(reason ? Buffer.concat([from, Buffer.from(reason)]) : from, 8);
108
112
  }).then(() => {
109
113
  internal.closePromise = null;
110
114
  });
@@ -4,27 +4,30 @@
4
4
  */
5
5
  declare class RatelimitBucket {
6
6
  fnQueue: Array<{
7
- fn: (...args: Array<any>) => any;
8
- callback: () => any;
7
+ fn: () => unknown;
8
+ callback: () => unknown;
9
9
  error: Error;
10
10
  }>;
11
11
  limit: number;
12
12
  remaining: number;
13
13
  limitReset: number;
14
+ defaultReset: number | undefined;
14
15
  resetTimeout: NodeJS.Timeout | null;
15
16
  static readonly default: typeof RatelimitBucket;
16
17
  /**
17
18
  * Create a new Bucket.
18
19
  * @param limit Number of functions that may be executed during the timeframe set in limitReset.
19
20
  * @param limitReset Timeframe in milliseconds until the ratelimit resets.
21
+ * @param defaultLimit If the bucket info does not provide default values, but provides remaining, this is the limit to use after the initial reset.
22
+ * @param defaultReset If the bucket info does not provide default values, but provides remaining, this is the reset to use after the initial reset.
20
23
  */
21
- constructor(limit?: number, limitReset?: number);
24
+ constructor(limit?: number, limitReset?: number, defaultReset?: number);
22
25
  /**
23
26
  * Queue a function to be executed.
24
27
  * @param fn Function to be executed.
25
28
  * @returns Result of the function if any.
26
29
  */
27
- queue(fn: (...args: Array<any>) => any): Promise<any>;
30
+ queue<T>(fn: () => T): Promise<T>;
28
31
  /**
29
32
  * Check if there are any functions in the queue that haven't been executed yet.
30
33
  */
@@ -7,13 +7,16 @@ class RatelimitBucket {
7
7
  * Create a new Bucket.
8
8
  * @param limit Number of functions that may be executed during the timeframe set in limitReset.
9
9
  * @param limitReset Timeframe in milliseconds until the ratelimit resets.
10
+ * @param defaultLimit If the bucket info does not provide default values, but provides remaining, this is the limit to use after the initial reset.
11
+ * @param defaultReset If the bucket info does not provide default values, but provides remaining, this is the reset to use after the initial reset.
10
12
  */
11
- constructor(limit = 5, limitReset = 5000) {
13
+ constructor(limit = 5, limitReset = 5000, defaultReset) {
12
14
  this.fnQueue = [];
13
15
  this.limit = limit;
14
16
  this.remaining = limit;
15
17
  this.limitReset = limitReset;
16
18
  this.resetTimeout = null;
19
+ this.defaultReset = defaultReset;
17
20
  }
18
21
  /**
19
22
  * Queue a function to be executed.
@@ -82,6 +85,8 @@ class RatelimitBucket {
82
85
  */
83
86
  resetRemaining() {
84
87
  this.remaining = this.limit;
88
+ if (this.defaultReset)
89
+ this.limitReset = this.defaultReset;
85
90
  if (this.resetTimeout) {
86
91
  clearTimeout(this.resetTimeout);
87
92
  this.resetTimeout = null;
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es5.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.dom.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/constants.ts","../node_modules/snowtransfer/dist/constants.d.ts","../node_modules/snowtransfer/dist/endpoints.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/snowtransfer/dist/ratelimitbuckets/localbucket.d.ts","../node_modules/snowtransfer/dist/ratelimiter.d.ts","../node_modules/@types/centra/index.d.ts","../node_modules/snowtransfer/dist/requesthandler.d.ts","../node_modules/discord-typings/reference.d.ts","../node_modules/discord-typings/topics/permissions.d.ts","../node_modules/discord-typings/resources/emoji.d.ts","../node_modules/discord-typings/resources/voice.d.ts","../node_modules/discord-typings/topics/opcodesandstatuscodes.d.ts","../node_modules/discord-typings/topics/teams.d.ts","../node_modules/discord-typings/resources/application.d.ts","../node_modules/discord-typings/resources/sticker.d.ts","../node_modules/discord-typings/resources/guildscheduledevent.d.ts","../node_modules/discord-typings/resources/invite.d.ts","../node_modules/discord-typings/topics/gateway.d.ts","../node_modules/discord-typings/resources/stageinstance.d.ts","../node_modules/discord-typings/resources/guild.d.ts","../node_modules/discord-typings/resources/user.d.ts","../node_modules/discord-typings/interactions/messagecomponents.d.ts","../node_modules/discord-typings/interactions/receivingandresponding.d.ts","../node_modules/discord-typings/resources/channel.d.ts","../node_modules/discord-typings/interactions/applicationcommands.d.ts","../node_modules/discord-typings/resources/webhook.d.ts","../node_modules/discord-typings/resources/auditlog.d.ts","../node_modules/discord-typings/resources/guildtemplate.d.ts","../node_modules/discord-typings/topics/oauth2.d.ts","../node_modules/discord-typings/index.d.ts","../node_modules/snowtransfer/dist/methods/channels.d.ts","../node_modules/snowtransfer/dist/methods/users.d.ts","../node_modules/snowtransfer/dist/methods/guildassets.d.ts","../node_modules/snowtransfer/dist/methods/webhooks.d.ts","../node_modules/snowtransfer/dist/methods/guilds.d.ts","../node_modules/snowtransfer/dist/methods/guildscheduledevent.d.ts","../node_modules/snowtransfer/dist/methods/guildtemplate.d.ts","../node_modules/snowtransfer/dist/methods/interactions.d.ts","../node_modules/snowtransfer/dist/methods/invites.d.ts","../node_modules/snowtransfer/dist/methods/voices.d.ts","../node_modules/snowtransfer/dist/methods/bots.d.ts","../node_modules/snowtransfer/dist/methods/auditlog.d.ts","../node_modules/snowtransfer/dist/methods/stageinstance.d.ts","../node_modules/snowtransfer/dist/snowtransfer.d.ts","../node_modules/snowtransfer/dist/index.d.ts","../src/structures/ratelimitbucket.ts","../src/types.ts","../src/structures/betterws.ts","../src/intents.ts","../src/connector/discordconnector.ts","../src/shard.ts","../src/shardmanager.ts","../src/client.ts","../src/index.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"9966ec0b03e7f0932a26e393e297e48dd31237cf514f1f973fd06e9d977b8f2c","241670ab33d6700a86b96dfd35c12d5ed2f2d109ffc5b6b0e124faec32ee00e7","762d474127360163db70f7dd29186037dca6049c15b993b0f84766a14bf93df8","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","a6f8d474a7cf5d4ab22d761f14e5f6b85c0050728fdc69fd65d79980bc42e60f","6feef4cfd98b1ccdd6248a91008b5701a7a2fb0a61adbeb74ee7c8fac0f514da","3e5883cbd1b75ae02ec22e0a74b35c1c069eecf6a34814292024f431d3a38cb3","8cff5283063cc4534f4c3b32dd339bf25920d53c7daaca2761317e2c2dea742f","dba1158a38c78ad31104b9cb36086133846b4c1b2b08d35f79868bdf2fc0ac8a","50d012d83e0e7eb222ca233269676b95f35116bcccd7bc1fb26c5b63a1a32527","a26ea102be21fbcae9d7eefe8e1deb6d5065af54a2470494fb55cf2b6c5f4793","ca6f8fe753ffd22a559a5838c4fe2a8a0c54ce9acd06464bbee549e6250a5814","08efe48606426eca55d9ff13f2849019d4689fa4cb2d27a9f0be4e543a7ce5e1","4cb4c93a284d529a689f96c49a162b654a86451543140e38e18d120342b59230","c960ef16f0024db825cd5395e275a556fdeedd6e6096fb8127de9a095310ea16","c9e75e2e8a8f78f713c243b95fa5ebf425eddf7a0f8ee4bf957d969ce522c055","2dc98f5ca38ced9fecc5fbd9c6547f2e1b91346848e385c3ed34d21ab5485b26","cf8b4dde972cfc12d371895e2c3336af610ac31c2a052c7d5171687f4d94640b","6f5f168bde77a5a553a0b2703aea33b25b8b6fd3657c32707fd7b135d37f7999","744338121e39ce5a4575436128483d851bec588019adb36e3550b8266fb7df06","f316ea316d6bb4bdee78b606ab7743fa41dd5fe6f9e20423b1cf2e12c145f778","b800c4657de5751c42a234152368abdc480201355c9ea2d79f1e2251f0a0923a","718f18909f7e3e7173e446ddcce0de5c2db20302196c242d6183e9db6dd86173","55fa5ab208fcc4e4a0b80ea7264eef7f33554943f4d375dba7f4a4457d82bc69","0ee2cf302a2bf95ec53eb932a779d9c8c8ca5d9ca9b437f2284062d175fccc5d","53c479afa9c0683507030f416648e6361723e607df5b8c56ecdf12ad14ead18a","cf8ef3555f09f8b71df47dc63dff5a869fb4afe4a1cb632dbec3dd625af725f3","cef33e4a401baf042a4eb8d98eeedd46740160a215d3c306c7b822deaf31be0a","e4ff2ec932357917fc93a319a654ca4a9e948392c8cb8e4a806e92d3add51047","e513fb76a4a263cd9385b0639d79d3e77dee2f918845ce5c1f4d63804b37f928","9f2c9e732e01e506055e2b6f336c24d8c1ea559c803e362dc0d4342b6e7902d1","1dec42ef5c7ff9fa01ac2c05ecb66d4b8b7d2b4b65ad7d7bdb01a3d727ee90d7","07d36410b1d0e2bfce13528fc8ecf1dbec31f6ec3986146410e1d6d6998fc148","4a5d2deb6c3edee59bc443c3bb0b2a1651e5101ee93aeb9261dcdedeed28b5af","b268af0197e558fdc32ca73bccd5dc25964093a15964da7a103c2450aaa47272","8a2556cb152a00bbbf2a5dadca1c6994f928258085c36aa24684c05b2f3e7274","4066f8d717c7c12da9bf8cba759a1d7449396d7f35b6eb4d4b4eec0d1647dda4","d948d6e7436ee4109e313b16269a1d2b5d14faf65d9437c976fb7ef4486b18f2","95e76615feb50312983f4ffd1f95051133a0f23f1af1a54a6ec0f22992c33504","7bd7d8f58f36696617c44d4ac8196284d9fad0036edc66ac5d1514c15fea2ee5","9a61a2e6282659624b125fd29aba2d2aadb3325e22ee8ea66123cbc658e1776f","c4b601ffd759466cacf25ffd585ac2fcf94fc0e8739ec179bea83e774872838a","d15f0313532fa6144d409cf896d9258750ce4f294cfe201642c7a02752a49f91","a2ba3ca93f1e681307c75f6ab8505ffad2a5557650f8435cb161b67a97880f4e","5a4048460b708d76d622a550df209789edb421c367e7ece5cd74c1eabc6d1813","7fed7ecc1c740cc737643da5966801ff99b4643b7ac8dbf44bbf84c0be5a6d7d","ab44436c909ddcc7a65483a67eb5d338b5bc270ad05b1b54b598c1604a6d9218","24cb82448e3ec4007a632ce719145d45c52713b8ec73cf818214c59f289767e7","71e6a98acb3f0200442916d93b63dd9466008dc88acd396a6354335836d916d2","1b6bed327264ee6dc1014d5e7535eee76109fded460befdf8c4e980d8d0c2fb7","2e64207a4b6425fb62cfe845b197dc7a4d1236e421f40eabd181d6da6186dd7e","1e6053c1231a4e35b6b8d017f1eef1740af53624c763321bd79387f06eab128c","2f0954344899308c5d5c99cae6fad95499baf9f1f2b6b343d85e029c677a834c","534d643f10a3719bc0ef357d01b2ac6dc1f132c92fc76b147f121d1b754f53da","5a013adbecf3026a50e5d4c91aa611de05d25f70f6731e1afa4a31c9e3796ef4"],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noUnusedLocals":false,"outDir":"./","removeComments":false,"sourceMap":false,"strictNullChecks":true,"target":6},"fileIdsList":[[92],[67,91,92,99],[49,92],[52,92],[53,58,92],[54,64,65,72,81,91,92],[54,55,64,72,92],[56,92],[57,58,65,73,92],[58,81,88,92],[59,61,64,72,92],[60,92],[61,62,92],[63,64,92],[64,92],[64,65,66,81,91,92],[64,65,66,81,92],[67,72,81,91,92],[64,65,67,68,72,81,88,91,92],[67,69,81,88,91,92],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[64,70,92],[71,91,92],[61,64,72,81,92],[73,92],[74,92],[52,75,92],[76,90,92,96],[77,92],[78,92],[64,79,92],[79,80,92,94],[64,81,82,83,92],[81,83,92],[81,82,92],[84,92],[85,92],[64,86,87,92],[86,87,92],[58,72,81,88,92],[89,92],[72,90,92],[53,67,78,91,92],[58,92],[81,92,93],[92,94],[92,95],[53,58,64,66,75,81,91,92,94,96],[81,92,97],[92,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],[92,104,120],[92,106],[92,104,105,116,117,118,120,121],[92,104,109,117],[92,104,112,116,117,120,122],[92,104,106,110,111,116,117,118,119],[92,104,117],[92,104,105,106,107,111,112,114,115,117,120],[92,104,116,117],[92,110,112,116,117,120],[92,104],[92,104,116],[92,104,116,117,120],[92,104,105,106,108,110,111,113,116,117,120],[47,48,92,140],[92,103,126],[92,99,103,126],[92,103,126,130],[92,101],[92,99,100],[64,92,99,101,102],[92,101,103,127,128,129,130,131,132,133,134,135,136,137,138,139],[46,64,92,126,141,143,148],[46,64,92,126,143,144,145,149],[46,92],[46,92,143,145,149,150],[92,143,145],[46,64,92,126,143,146,149],[92,126,147,149],[46,58,64,69,72,92,97,142,143],[92,126,141]],"referencedMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[44,1],[41,1],[42,1],[43,1],[1,1],[9,1],[45,1],[102,2],[49,3],[50,3],[52,4],[53,5],[54,6],[55,7],[56,8],[57,9],[58,10],[59,11],[60,12],[61,13],[62,13],[63,14],[64,15],[65,16],[66,17],[51,1],[98,1],[67,18],[68,19],[69,20],[99,21],[70,22],[71,23],[72,24],[73,25],[74,26],[75,27],[76,28],[77,29],[78,30],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,38],[87,39],[88,40],[89,41],[90,42],[91,43],[92,44],[93,45],[94,46],[95,47],[96,48],[97,49],[126,50],[121,51],[118,52],[119,53],[104,1],[110,54],[123,55],[120,56],[106,57],[116,58],[112,59],[124,59],[113,60],[115,61],[111,57],[117,62],[107,62],[122,63],[114,64],[125,1],[108,1],[105,61],[109,57],[47,1],[48,1],[141,65],[138,66],[137,66],[127,67],[129,67],[131,66],[132,66],[133,66],[134,68],[135,66],[139,66],[128,66],[136,66],[130,67],[100,69],[101,70],[103,71],[140,72],[149,73],[146,74],[46,75],[150,76],[145,77],[147,78],[148,79],[144,80],[142,1],[143,81]],"exportedModulesMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[44,1],[41,1],[42,1],[43,1],[1,1],[9,1],[45,1],[102,2],[49,3],[50,3],[52,4],[53,5],[54,6],[55,7],[56,8],[57,9],[58,10],[59,11],[60,12],[61,13],[62,13],[63,14],[64,15],[65,16],[66,17],[51,1],[98,1],[67,18],[68,19],[69,20],[99,21],[70,22],[71,23],[72,24],[73,25],[74,26],[75,27],[76,28],[77,29],[78,30],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,38],[87,39],[88,40],[89,41],[90,42],[91,43],[92,44],[93,45],[94,46],[95,47],[96,48],[97,49],[126,50],[121,51],[118,52],[119,53],[104,1],[110,54],[123,55],[120,56],[106,57],[116,58],[112,59],[124,59],[113,60],[115,61],[111,57],[117,62],[107,62],[122,63],[114,64],[125,1],[108,1],[105,61],[109,57],[47,1],[48,1],[141,65],[138,66],[137,66],[127,67],[129,67],[131,66],[132,66],[133,66],[134,68],[135,66],[139,66],[128,66],[136,66],[130,67],[100,69],[101,70],[103,71],[140,72],[149,73],[146,74],[46,75],[150,76],[145,77],[147,78],[148,79],[144,80],[142,1],[143,81]],"semanticDiagnosticsPerFile":[10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,44,41,42,43,1,9,45,102,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,51,98,67,68,69,99,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,126,121,118,119,104,110,123,120,106,116,112,124,113,115,111,117,107,122,114,125,108,105,109,47,48,141,138,137,127,129,131,132,133,134,135,139,128,136,130,100,101,103,140,149,146,46,150,145,147,148,144,142,143]},"version":"4.5.5"}
1
+ {"program":{"fileNames":["../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es5.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.dom.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../appdata/roaming/npm/node_modules/typescript/lib/lib.esnext.intl.d.ts","../src/constants.ts","../node_modules/snowtransfer/dist/constants.d.ts","../node_modules/snowtransfer/dist/endpoints.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/snowtransfer/dist/ratelimitbuckets/localbucket.d.ts","../node_modules/snowtransfer/dist/ratelimiter.d.ts","../node_modules/@types/centra/index.d.ts","../node_modules/snowtransfer/dist/requesthandler.d.ts","../node_modules/discord-typings/reference.d.ts","../node_modules/discord-typings/topics/permissions.d.ts","../node_modules/discord-typings/resources/emoji.d.ts","../node_modules/discord-typings/resources/voice.d.ts","../node_modules/discord-typings/topics/opcodesandstatuscodes.d.ts","../node_modules/discord-typings/topics/teams.d.ts","../node_modules/discord-typings/resources/application.d.ts","../node_modules/discord-typings/resources/sticker.d.ts","../node_modules/discord-typings/resources/guildscheduledevent.d.ts","../node_modules/discord-typings/resources/invite.d.ts","../node_modules/discord-typings/topics/gateway.d.ts","../node_modules/discord-typings/resources/stageinstance.d.ts","../node_modules/discord-typings/resources/guild.d.ts","../node_modules/discord-typings/resources/user.d.ts","../node_modules/discord-typings/interactions/messagecomponents.d.ts","../node_modules/discord-typings/interactions/receivingandresponding.d.ts","../node_modules/discord-typings/resources/channel.d.ts","../node_modules/discord-typings/interactions/applicationcommands.d.ts","../node_modules/discord-typings/resources/webhook.d.ts","../node_modules/discord-typings/resources/auditlog.d.ts","../node_modules/discord-typings/resources/guildtemplate.d.ts","../node_modules/discord-typings/topics/oauth2.d.ts","../node_modules/discord-typings/index.d.ts","../node_modules/snowtransfer/dist/methods/channels.d.ts","../node_modules/snowtransfer/dist/methods/users.d.ts","../node_modules/snowtransfer/dist/methods/guildassets.d.ts","../node_modules/snowtransfer/dist/methods/webhooks.d.ts","../node_modules/snowtransfer/dist/methods/guilds.d.ts","../node_modules/snowtransfer/dist/methods/guildscheduledevent.d.ts","../node_modules/snowtransfer/dist/methods/guildtemplate.d.ts","../node_modules/snowtransfer/dist/methods/interactions.d.ts","../node_modules/snowtransfer/dist/methods/invites.d.ts","../node_modules/snowtransfer/dist/methods/voices.d.ts","../node_modules/snowtransfer/dist/methods/bots.d.ts","../node_modules/snowtransfer/dist/methods/auditlog.d.ts","../node_modules/snowtransfer/dist/methods/stageinstance.d.ts","../node_modules/snowtransfer/dist/snowtransfer.d.ts","../node_modules/snowtransfer/dist/index.d.ts","../src/structures/ratelimitbucket.ts","../src/types.ts","../src/structures/betterws.ts","../src/intents.ts","../src/connector/discordconnector.ts","../src/shard.ts","../src/shardmanager.ts","../src/client.ts","../src/index.ts"],"fileInfos":[{"version":"89f78430e422a0f06d13019d60d5a45b37ec2d28e67eb647f73b1b0d19a46b72","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","e6b724280c694a9f588847f754198fb96c43d805f065c3a5b28bbc9594541c84","e21c071ca3e1b4a815d5f04a7475adcaeea5d64367e840dd0154096d705c3940","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","2cc028cd0bdb35b1b5eb723d84666a255933fffbea607f72cbd0c7c7b4bee144",{"version":"abba1071bfd89e55e88a054b0c851ea3e8a494c340d0f3fab19eb18f6afb0c9e","affectsGlobalScope":true},{"version":"d8996609230d17e90484a2dd58f22668f9a05a3bfe00bfb1d6271171e54a31fb","affectsGlobalScope":true},{"version":"43fb1d932e4966a39a41b464a12a81899d9ae5f2c829063f5571b6b87e6d2f9c","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"4378fc8122ec9d1a685b01eb66c46f62aba6b239ca7228bb6483bcf8259ee493","affectsGlobalScope":true},{"version":"0d5f52b3174bee6edb81260ebcd792692c32c81fd55499d69531496f3f2b25e7","affectsGlobalScope":true},{"version":"810627a82ac06fb5166da5ada4159c4ec11978dfbb0805fe804c86406dab8357","affectsGlobalScope":true},{"version":"62d80405c46c3f4c527ee657ae9d43fda65a0bf582292429aea1e69144a522a6","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"75ec0bdd727d887f1b79ed6619412ea72ba3c81d92d0787ccb64bab18d261f14","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"12a310447c5d23c7d0d5ca2af606e3bd08afda69100166730ab92c62999ebb9d","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"1b3fe904465430e030c93239a348f05e1be80640d91f2f004c3512c2c2c89f34","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"d071129cba6a5f2700be09c86c07ad2791ab67d4e5ed1eb301d6746c62745ea4","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"e8c9f4e445a489991ca1a4232667de3ac36b07ba75ea335971fbeacf2d26fe67","affectsGlobalScope":true},{"version":"10bbdc1981b8d9310ee75bfac28ee0477bb2353e8529da8cff7cb26c409cb5e8","affectsGlobalScope":true},"9966ec0b03e7f0932a26e393e297e48dd31237cf514f1f973fd06e9d977b8f2c","241670ab33d6700a86b96dfd35c12d5ed2f2d109ffc5b6b0e124faec32ee00e7","af73d86092a6434d4e4c16968ecbea06b51154c66aac99429aa28617fa51807d","0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"c2ab70bbc7a24c42a790890739dd8a0ba9d2e15038b40dff8163a97a5d148c00","affectsGlobalScope":true},"422dbb183fdced59425ca072c8bd09efaa77ce4e2ab928ec0d8a1ce062d2a45a",{"version":"712ba0d43b44d144dfd01593f61af6e2e21cfae83e834d297643e7973e55ed61","affectsGlobalScope":true},"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894",{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","98a3ebfa494b46265634a73459050befba5da8fdc6ca0ef9b7269421780f4ff3","34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","cc0b61316c4f37393f1f9595e93b673f4184e9d07f4c127165a490ec4a928668","f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79",{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true},"b8aca9d0c81abb02bec9b7621983ae65bde71da6727580070602bd2500a9ce2a","ae97e20f2e10dbeec193d6a2f9cd9a367a1e293e7d6b33b68bacea166afd7792","10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","ad41bb744149e92adb06eb953da195115620a3f2ad48e7d3ae04d10762dae197","bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82",{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true},"5d0a9ea09d990b5788f867f1c79d4878f86f7384cb7dab38eecbf22f9efd063d","12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304",{"version":"4cd4cff679c9b3d9239fd7bf70293ca4594583767526916af8e5d5a47d0219c7","affectsGlobalScope":true},"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","00fa7ce8bc8acc560dc341bbfdf37840a8c59e6a67c9bfa3fa5f36254df35db2","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff",{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true},"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248",{"version":"3345c276cab0e76dda86c0fb79104ff915a4580ba0f3e440870e183b1baec476","affectsGlobalScope":true},"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","103d70bfbeb3cd3a3f26d1705bf986322d8738c2c143f38ebb743b1e228d7444","f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7",{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true},"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"9cafe917bf667f1027b2bb62e2de454ecd2119c80873ad76fc41d941089753b8","a6f8d474a7cf5d4ab22d761f14e5f6b85c0050728fdc69fd65d79980bc42e60f","6feef4cfd98b1ccdd6248a91008b5701a7a2fb0a61adbeb74ee7c8fac0f514da","3e5883cbd1b75ae02ec22e0a74b35c1c069eecf6a34814292024f431d3a38cb3","07ee26bcf8df0582fd517602d259cc7a8b71b1d86d83ddaa5e47cbae875db79f","dba1158a38c78ad31104b9cb36086133846b4c1b2b08d35f79868bdf2fc0ac8a","150a5862874478d5c14e7b6f02e1df5f5e46284b7dcae8822d6f045fc30e94a4","a26ea102be21fbcae9d7eefe8e1deb6d5065af54a2470494fb55cf2b6c5f4793","ca6f8fe753ffd22a559a5838c4fe2a8a0c54ce9acd06464bbee549e6250a5814","08efe48606426eca55d9ff13f2849019d4689fa4cb2d27a9f0be4e543a7ce5e1","4cb4c93a284d529a689f96c49a162b654a86451543140e38e18d120342b59230","0921334431ec6bf599691193762a4f6d049c8632c563b09ac13665506ec43195","c9e75e2e8a8f78f713c243b95fa5ebf425eddf7a0f8ee4bf957d969ce522c055","bf0763a84702a72bbc492f6a41196b70df432dfec062af0f6a555d785b943cfb","fdc136dfdfea68b8bb93db9060ff59eab1696bc1725e2a264faa82b3a2836c1a","6f5f168bde77a5a553a0b2703aea33b25b8b6fd3657c32707fd7b135d37f7999","c78aa784c2c60a8acd213cbb94f9a4792788f679c6c64824910bf5d3b028eb42","91364f823572be45c655c42572d16c2cb0530e12419c14eea23dacecb561b01a","b800c4657de5751c42a234152368abdc480201355c9ea2d79f1e2251f0a0923a","febff245a678fc3f598c5611c8f5c079db8b12ad08e61ef1d7febfa9c82743b2","3395093408c97de4f9e47b37b1edbf47643e9a591b74dbf6b814c1c5b3e278e7","3fe7bb36f0b587c32403d1de497547522ba282d88f660dc6d057a0d187e932c5","204070adc433ffd7f2c9d5e598074024ce8bfb6225eb841e293ac1283a165213","cf8ef3555f09f8b71df47dc63dff5a869fb4afe4a1cb632dbec3dd625af725f3","cef33e4a401baf042a4eb8d98eeedd46740160a215d3c306c7b822deaf31be0a","e4ff2ec932357917fc93a319a654ca4a9e948392c8cb8e4a806e92d3add51047","7ba36d11ae38518a6ff04bdf2089c5e62ea10ef8801512f250681b1f271225bd","9f2c9e732e01e506055e2b6f336c24d8c1ea559c803e362dc0d4342b6e7902d1","1dec42ef5c7ff9fa01ac2c05ecb66d4b8b7d2b4b65ad7d7bdb01a3d727ee90d7","07d36410b1d0e2bfce13528fc8ecf1dbec31f6ec3986146410e1d6d6998fc148","4a5d2deb6c3edee59bc443c3bb0b2a1651e5101ee93aeb9261dcdedeed28b5af","dbf1346c9b0f14653a8dbe8a6c5f46208c8c4538c60f8ec21714e60bb1e2b596","af3601bf1517ef2dda2e771d04102982dc6d67f34cf42f4d81861cde1b2bf7bb","4066f8d717c7c12da9bf8cba759a1d7449396d7f35b6eb4d4b4eec0d1647dda4","d948d6e7436ee4109e313b16269a1d2b5d14faf65d9437c976fb7ef4486b18f2","157ca38948262ff885e3237a1a565e1bbb15e4f1f83ebc494e0026888d839751","7bd7d8f58f36696617c44d4ac8196284d9fad0036edc66ac5d1514c15fea2ee5","9a61a2e6282659624b125fd29aba2d2aadb3325e22ee8ea66123cbc658e1776f","c4b601ffd759466cacf25ffd585ac2fcf94fc0e8739ec179bea83e774872838a","d15f0313532fa6144d409cf896d9258750ce4f294cfe201642c7a02752a49f91","42f50ef5f446724f7e64df244aa91db35e1714b082dadf2f1ef8015eab4652da","25513566501ee6e95e633500ea9d3e316afc78cef6a37e80212b236769913ebe","7fed7ecc1c740cc737643da5966801ff99b4643b7ac8dbf44bbf84c0be5a6d7d",{"version":"f1ffb993045211679cdd64df58f6f0b304b86fb07657077135697968b244eb51","signature":"073b0e8b9d7392ed5e02f1f12c0e2e3c2e46b1820d4464923003966ce870d116"},{"version":"6768d708c3e445bda7ab50c428dca96e46f3c2ae5c347d9bf86deb888771b1dd","signature":"3e15e26df5511f2881ba50ee61c6c30725ff9254cedeb8d66c37c007f655525b"},{"version":"75cad6a28ab91182801acc655da792ddb3fc7768861d920ecff63ee20dc296fd","signature":"adc6b4fef57cfb135b0a8b0b28821fe0b36b3f12491957b60932e4ffae18e6e9"},{"version":"0d08b33aac3b17b047fbffef9bcff420ec6cb2a8ef6820434da8aa5b97ab335d","signature":"42a3019b8904d7963511fa16f3490eb756ed8eff8600c0116bf2e2142e826a50"},{"version":"3cfb910c91e9063b0ebec977b4c987f73b4b2dc05528f5d88986e35d49e12b78","signature":"9730bce50b78ddc7b8e62490eedfc9b840ef728c91fea509440e15fc86a7abd7"},{"version":"1e6053c1231a4e35b6b8d017f1eef1740af53624c763321bd79387f06eab128c","signature":"fc0677fb1b5375a74cb4d29550ac2f8dddd4b2959a5bdc6b0d35cd51a7c5db57"},{"version":"2ab0715975ca1d78eaf79145a8587c4f67a0fef59a5dab5bc3b0419eae7c608b","signature":"befd1a55825ef84c1ad861b9f12ed0737be0e1152ae746c556d8da33663bab08"},{"version":"c84783fb8075912d76ce14917bd16e942478e03c0dfa359b3dd99f3d1c4cbf2e","signature":"08468128804e2f7806bd081f9c3299a05095754a2e554e712246a2ebb1b505af"},{"version":"5a013adbecf3026a50e5d4c91aa611de05d25f70f6731e1afa4a31c9e3796ef4","signature":"a2084fd9326fde59e6af3fd117411282c4bf5114623f41a7b776abd79fc6282a"}],"options":{"allowSyntheticDefaultImports":true,"declaration":true,"emitDecoratorMetadata":true,"esModuleInterop":true,"experimentalDecorators":true,"module":1,"noUnusedLocals":false,"outDir":"./","removeComments":false,"sourceMap":false,"strictNullChecks":true,"target":6},"fileIdsList":[[92],[67,91,92,99],[49,92],[52,92],[53,58,92],[54,64,65,72,81,91,92],[54,55,64,72,92],[56,92],[57,58,65,73,92],[58,81,88,92],[59,61,64,72,92],[60,92],[61,62,92],[63,64,92],[64,92],[64,65,66,81,91,92],[64,65,66,81,92],[67,72,81,91,92],[64,65,67,68,72,81,88,91,92],[67,69,81,88,91,92],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[64,70,92],[71,91,92],[61,64,72,81,92],[73,92],[74,92],[52,75,92],[76,90,92,96],[77,92],[78,92],[64,79,92],[79,80,92,94],[64,81,82,83,92],[81,83,92],[81,82,92],[84,92],[85,92],[64,86,87,92],[86,87,92],[58,72,81,88,92],[89,92],[72,90,92],[53,67,78,91,92],[58,92],[81,92,93],[92,94],[92,95],[53,58,64,66,75,81,91,92,94,96],[81,92,97],[92,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],[92,104,120],[92,106],[92,104,105,116,117,118,120,121],[92,104,109,117],[92,104,112,116,117,120,122],[92,104,106,110,111,116,117,118,119],[92,104,117],[92,104,105,106,107,111,112,114,115,117,120],[92,104,116,117],[92,110,112,116,117,120],[92,104],[92,104,116],[92,104,116,117,120],[92,104,105,106,108,110,111,113,116,117,120],[47,48,92,140],[92,103,126],[92,99,103,126],[92,103,126,130],[92,101],[92,99,100],[64,92,99,101,102],[92,101,103,127,128,129,130,131,132,133,134,135,136,137,138,139],[46,64,92,126,141,142,143,148],[46,64,92,126,143,144,145,149],[46,92],[46,92,143,145,149,150],[92,143,145],[46,64,92,126,143,146,149],[92,126,142,147,149],[46,58,64,69,72,92,97,142,143],[92,126,141],[64,126,143,148],[64,126,143,144,149],[46,143,145,149,150],[143,145],[64,126,146,149],[126,142,147,149],[64,142,143],[126,141]],"referencedMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[44,1],[41,1],[42,1],[43,1],[1,1],[9,1],[45,1],[102,2],[49,3],[50,3],[52,4],[53,5],[54,6],[55,7],[56,8],[57,9],[58,10],[59,11],[60,12],[61,13],[62,13],[63,14],[64,15],[65,16],[66,17],[51,1],[98,1],[67,18],[68,19],[69,20],[99,21],[70,22],[71,23],[72,24],[73,25],[74,26],[75,27],[76,28],[77,29],[78,30],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,38],[87,39],[88,40],[89,41],[90,42],[91,43],[92,44],[93,45],[94,46],[95,47],[96,48],[97,49],[126,50],[121,51],[118,52],[119,53],[104,1],[110,54],[123,55],[120,56],[106,57],[116,58],[112,59],[124,59],[113,60],[115,61],[111,57],[117,62],[107,62],[122,63],[114,64],[125,1],[108,1],[105,61],[109,57],[47,1],[48,1],[141,65],[138,66],[137,66],[127,67],[129,67],[131,66],[132,66],[133,66],[134,68],[135,66],[139,66],[128,66],[136,66],[130,67],[100,69],[101,70],[103,71],[140,72],[149,73],[146,74],[46,75],[150,76],[145,77],[147,78],[148,79],[144,80],[142,1],[143,81]],"exportedModulesMap":[[10,1],[12,1],[11,1],[2,1],[13,1],[14,1],[15,1],[16,1],[17,1],[18,1],[19,1],[20,1],[3,1],[4,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[32,1],[33,1],[34,1],[35,1],[7,1],[40,1],[36,1],[37,1],[38,1],[39,1],[8,1],[44,1],[41,1],[42,1],[43,1],[1,1],[9,1],[45,1],[102,2],[49,3],[50,3],[52,4],[53,5],[54,6],[55,7],[56,8],[57,9],[58,10],[59,11],[60,12],[61,13],[62,13],[63,14],[64,15],[65,16],[66,17],[51,1],[98,1],[67,18],[68,19],[69,20],[99,21],[70,22],[71,23],[72,24],[73,25],[74,26],[75,27],[76,28],[77,29],[78,30],[79,31],[80,32],[81,33],[83,34],[82,35],[84,36],[85,37],[86,38],[87,39],[88,40],[89,41],[90,42],[91,43],[92,44],[93,45],[94,46],[95,47],[96,48],[97,49],[126,50],[121,51],[118,52],[119,53],[104,1],[110,54],[123,55],[120,56],[106,57],[116,58],[112,59],[124,59],[113,60],[115,61],[111,57],[117,62],[107,62],[122,63],[114,64],[125,1],[108,1],[105,61],[109,57],[47,1],[48,1],[141,65],[138,66],[137,66],[127,67],[129,67],[131,66],[132,66],[133,66],[134,68],[135,66],[139,66],[128,66],[136,66],[130,67],[100,69],[101,70],[103,71],[140,72],[149,82],[146,83],[46,75],[150,84],[145,85],[147,86],[148,87],[144,88],[143,89]],"semanticDiagnosticsPerFile":[10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,32,33,34,35,7,40,36,37,38,39,8,44,41,42,43,1,9,45,102,49,50,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,51,98,67,68,69,99,70,71,72,73,74,75,76,77,78,79,80,81,83,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,126,121,118,119,104,110,123,120,106,116,112,124,113,115,111,117,107,122,114,125,108,105,109,47,48,141,138,137,127,129,131,132,133,134,135,139,128,136,130,100,101,103,140,149,146,46,150,145,147,148,144,142,143]},"version":"4.5.5"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudstorm",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "Minimalistic Discord Gateway library",
5
5
  "main": "./dist/index.js",
6
6
  "engines": {
@@ -14,18 +14,18 @@
14
14
  "author": "wolke <wolke@weeb.sh>",
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "snowtransfer": "^0.4.x"
17
+ "snowtransfer": "^0.4.3"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/centra": "^2.2.0",
21
21
  "@types/node": "17.0.23",
22
- "@typescript-eslint/eslint-plugin": "^5.16.0",
23
- "@typescript-eslint/parser": "^5.16.0",
24
- "eslint": "^8.11.0",
22
+ "@typescript-eslint/eslint-plugin": "^5.17.0",
23
+ "@typescript-eslint/parser": "^5.17.0",
24
+ "eslint": "^8.12.0",
25
25
  "typedoc": "^0.22.13",
26
26
  "typedoc-plugin-mdn-links": "^1.0.5",
27
27
  "typedoc-plugin-missing-exports": "^0.22.6",
28
- "typescript": "^4.6.2"
28
+ "typescript": "^4.6.3"
29
29
  },
30
30
  "files": [
31
31
  "dist",