@jubbio/core 1.3.2 → 1.3.4
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/Client.js +50 -10
- package/dist/rest/REST.d.ts +1 -0
- package/dist/rest/REST.js +1 -1
- package/dist/structures/Channel.d.ts +1 -1
- package/dist/structures/Channel.js +11 -4
- package/dist/structures/Guild.d.ts +1 -1
- package/dist/structures/Guild.js +7 -3
- package/dist/structures/Message.d.ts +2 -0
- package/dist/structures/Message.js +13 -33
- package/package.json +4 -14
- package/dist/cjs/Client.d.ts +0 -157
- package/dist/cjs/Client.js +0 -640
- package/dist/cjs/builders/ActionRowBuilder.d.ts +0 -53
- package/dist/cjs/builders/ActionRowBuilder.js +0 -68
- package/dist/cjs/builders/ButtonBuilder.d.ts +0 -77
- package/dist/cjs/builders/ButtonBuilder.js +0 -96
- package/dist/cjs/builders/EmbedBuilder.d.ts +0 -157
- package/dist/cjs/builders/EmbedBuilder.js +0 -208
- package/dist/cjs/builders/ModalBuilder.d.ts +0 -122
- package/dist/cjs/builders/ModalBuilder.js +0 -162
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +0 -123
- package/dist/cjs/builders/SelectMenuBuilder.js +0 -165
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +0 -197
- package/dist/cjs/builders/SlashCommandBuilder.js +0 -324
- package/dist/cjs/builders/index.d.ts +0 -9
- package/dist/cjs/builders/index.js +0 -26
- package/dist/cjs/enums.d.ts +0 -191
- package/dist/cjs/enums.js +0 -211
- package/dist/cjs/index.d.ts +0 -25
- package/dist/cjs/index.js +0 -130
- package/dist/cjs/managers/BaseManager.d.ts +0 -69
- package/dist/cjs/managers/BaseManager.js +0 -106
- package/dist/cjs/managers/ChannelManager.d.ts +0 -95
- package/dist/cjs/managers/ChannelManager.js +0 -205
- package/dist/cjs/managers/GuildMemberManager.d.ts +0 -74
- package/dist/cjs/managers/GuildMemberManager.js +0 -157
- package/dist/cjs/managers/RoleManager.d.ts +0 -84
- package/dist/cjs/managers/RoleManager.js +0 -207
- package/dist/cjs/managers/index.d.ts +0 -7
- package/dist/cjs/managers/index.js +0 -24
- package/dist/cjs/rest/REST.d.ts +0 -527
- package/dist/cjs/rest/REST.js +0 -904
- package/dist/cjs/rest/index.d.ts +0 -1
- package/dist/cjs/rest/index.js +0 -18
- package/dist/cjs/sharding/ShardingManager.d.ts +0 -179
- package/dist/cjs/sharding/ShardingManager.js +0 -375
- package/dist/cjs/sharding/index.d.ts +0 -4
- package/dist/cjs/sharding/index.js +0 -21
- package/dist/cjs/structures/Channel.d.ts +0 -122
- package/dist/cjs/structures/Channel.js +0 -240
- package/dist/cjs/structures/Collection.d.ts +0 -53
- package/dist/cjs/structures/Collection.js +0 -115
- package/dist/cjs/structures/Guild.d.ts +0 -59
- package/dist/cjs/structures/Guild.js +0 -94
- package/dist/cjs/structures/GuildMember.d.ts +0 -174
- package/dist/cjs/structures/GuildMember.js +0 -311
- package/dist/cjs/structures/Interaction.d.ts +0 -245
- package/dist/cjs/structures/Interaction.js +0 -450
- package/dist/cjs/structures/Message.d.ts +0 -98
- package/dist/cjs/structures/Message.js +0 -195
- package/dist/cjs/structures/User.d.ts +0 -37
- package/dist/cjs/structures/User.js +0 -65
- package/dist/cjs/structures/index.d.ts +0 -7
- package/dist/cjs/structures/index.js +0 -25
- package/dist/cjs/structures.d.ts +0 -1
- package/dist/cjs/structures.js +0 -19
- package/dist/cjs/types.d.ts +0 -255
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/utils/BitField.d.ts +0 -66
- package/dist/cjs/utils/BitField.js +0 -138
- package/dist/cjs/utils/Collection.d.ts +0 -116
- package/dist/cjs/utils/Collection.js +0 -265
- package/dist/cjs/utils/Collector.d.ts +0 -152
- package/dist/cjs/utils/Collector.js +0 -314
- package/dist/cjs/utils/DataResolver.d.ts +0 -61
- package/dist/cjs/utils/DataResolver.js +0 -146
- package/dist/cjs/utils/Formatters.d.ts +0 -145
- package/dist/cjs/utils/Formatters.js +0 -213
- package/dist/cjs/utils/IntentsBitField.d.ts +0 -85
- package/dist/cjs/utils/IntentsBitField.js +0 -99
- package/dist/cjs/utils/Partials.d.ts +0 -104
- package/dist/cjs/utils/Partials.js +0 -148
- package/dist/cjs/utils/PermissionsBitField.d.ts +0 -118
- package/dist/cjs/utils/PermissionsBitField.js +0 -145
- package/dist/cjs/utils/SnowflakeUtil.d.ts +0 -63
- package/dist/cjs/utils/SnowflakeUtil.js +0 -93
- package/dist/cjs/utils/Sweepers.d.ts +0 -119
- package/dist/cjs/utils/Sweepers.js +0 -249
- package/dist/cjs/utils/index.d.ts +0 -13
- package/dist/cjs/utils/index.js +0 -30
- package/dist/esm/Client.js +0 -634
- package/dist/esm/builders/ActionRowBuilder.js +0 -64
- package/dist/esm/builders/ButtonBuilder.js +0 -92
- package/dist/esm/builders/EmbedBuilder.js +0 -204
- package/dist/esm/builders/ModalBuilder.js +0 -157
- package/dist/esm/builders/SelectMenuBuilder.js +0 -161
- package/dist/esm/builders/SlashCommandBuilder.js +0 -311
- package/dist/esm/builders/index.js +0 -10
- package/dist/esm/enums.js +0 -208
- package/dist/esm/index.js +0 -34
- package/dist/esm/managers/BaseManager.js +0 -100
- package/dist/esm/managers/ChannelManager.js +0 -200
- package/dist/esm/managers/GuildMemberManager.js +0 -153
- package/dist/esm/managers/RoleManager.js +0 -203
- package/dist/esm/managers/index.js +0 -8
- package/dist/esm/rest/REST.js +0 -900
- package/dist/esm/rest/index.js +0 -2
- package/dist/esm/sharding/ShardingManager.js +0 -366
- package/dist/esm/sharding/index.js +0 -5
- package/dist/esm/structures/Channel.js +0 -232
- package/dist/esm/structures/Collection.js +0 -111
- package/dist/esm/structures/Guild.js +0 -90
- package/dist/esm/structures/GuildMember.js +0 -306
- package/dist/esm/structures/Interaction.js +0 -438
- package/dist/esm/structures/Message.js +0 -191
- package/dist/esm/structures/User.js +0 -61
- package/dist/esm/structures/index.js +0 -9
- package/dist/esm/structures.js +0 -3
- package/dist/esm/types.js +0 -2
- package/dist/esm/utils/BitField.js +0 -134
- package/dist/esm/utils/Collection.js +0 -261
- package/dist/esm/utils/Collector.js +0 -305
- package/dist/esm/utils/DataResolver.js +0 -142
- package/dist/esm/utils/Formatters.js +0 -191
- package/dist/esm/utils/IntentsBitField.js +0 -93
- package/dist/esm/utils/Partials.js +0 -137
- package/dist/esm/utils/PermissionsBitField.js +0 -141
- package/dist/esm/utils/SnowflakeUtil.js +0 -89
- package/dist/esm/utils/Sweepers.js +0 -245
- package/dist/esm/utils/index.js +0 -14
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Manager for roles with caching and lazy loading
|
|
4
|
-
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.RoleManager = void 0;
|
|
7
|
-
const BaseManager_1 = require("./BaseManager");
|
|
8
|
-
const Collection_1 = require("../utils/Collection");
|
|
9
|
-
/**
|
|
10
|
-
* Manages roles for a guild
|
|
11
|
-
*/
|
|
12
|
-
class RoleManager extends BaseManager_1.CachedManager {
|
|
13
|
-
/** The guild this manager belongs to */
|
|
14
|
-
guild;
|
|
15
|
-
constructor(guild, iterable) {
|
|
16
|
-
super(guild.client, Object, iterable);
|
|
17
|
-
this.guild = guild;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Get the @everyone role
|
|
21
|
-
*/
|
|
22
|
-
get everyone() {
|
|
23
|
-
return this.cache.get(this.guild.id) ?? null;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get the highest role
|
|
27
|
-
*/
|
|
28
|
-
get highest() {
|
|
29
|
-
return this.cache.reduce((prev, role) => (role.position > (prev?.position ?? -1)) ? role : prev, null);
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Get the bot's highest role
|
|
33
|
-
*/
|
|
34
|
-
get botRoleFor() {
|
|
35
|
-
return (userId) => {
|
|
36
|
-
const member = this.guild.members?.cache.get(userId);
|
|
37
|
-
if (!member)
|
|
38
|
-
return null;
|
|
39
|
-
return this.cache
|
|
40
|
-
.filter((role) => member.roles?.includes(role.id))
|
|
41
|
-
.sort((a, b) => b.position - a.position)
|
|
42
|
-
.first() ?? null;
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Add a role to the cache
|
|
47
|
-
*/
|
|
48
|
-
_add(data, cache = true) {
|
|
49
|
-
const id = data.id;
|
|
50
|
-
const existing = this.cache.get(id);
|
|
51
|
-
if (existing) {
|
|
52
|
-
if (cache)
|
|
53
|
-
Object.assign(existing, data);
|
|
54
|
-
return existing;
|
|
55
|
-
}
|
|
56
|
-
const role = {
|
|
57
|
-
id,
|
|
58
|
-
guildId: this.guild.id,
|
|
59
|
-
name: data.name,
|
|
60
|
-
color: data.color ?? 0,
|
|
61
|
-
hoist: data.hoist ?? false,
|
|
62
|
-
position: data.position ?? 0,
|
|
63
|
-
permissions: data.permissions ?? '0',
|
|
64
|
-
managed: data.managed ?? false,
|
|
65
|
-
mentionable: data.mentionable ?? false,
|
|
66
|
-
icon: data.icon ?? null,
|
|
67
|
-
unicodeEmoji: data.unicode_emoji ?? null,
|
|
68
|
-
tags: data.tags ?? null,
|
|
69
|
-
get hexColor() {
|
|
70
|
-
return `#${this.color.toString(16).padStart(6, '0')}`;
|
|
71
|
-
},
|
|
72
|
-
get createdAt() {
|
|
73
|
-
const timestamp = BigInt(this.id) >> 22n;
|
|
74
|
-
return new Date(Number(timestamp) + 1640995200000); // Jubbio epoch
|
|
75
|
-
},
|
|
76
|
-
toString() {
|
|
77
|
-
return this.id === this.guildId ? '@everyone' : `<@&${this.id}>`;
|
|
78
|
-
},
|
|
79
|
-
comparePositionTo(role) {
|
|
80
|
-
return this.position - (role?.position ?? 0);
|
|
81
|
-
},
|
|
82
|
-
async edit(data) {
|
|
83
|
-
return this.guild.roles.edit(this.id, data);
|
|
84
|
-
},
|
|
85
|
-
async delete(reason) {
|
|
86
|
-
return this.guild.roles.delete(this.id, reason);
|
|
87
|
-
},
|
|
88
|
-
async setPosition(position) {
|
|
89
|
-
return this.guild.roles.setPositions([{ role: this.id, position }]);
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
if (cache)
|
|
93
|
-
this.cache.set(id, role);
|
|
94
|
-
return role;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Fetch a role from the API
|
|
98
|
-
*/
|
|
99
|
-
async fetch(id, options) {
|
|
100
|
-
if (!options?.force) {
|
|
101
|
-
const existing = this.cache.get(id);
|
|
102
|
-
if (existing)
|
|
103
|
-
return existing;
|
|
104
|
-
}
|
|
105
|
-
// Roles are fetched as part of guild, so fetch all
|
|
106
|
-
const roles = await this.fetchAll();
|
|
107
|
-
return roles.get(id) ?? null;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Fetch all roles for the guild
|
|
111
|
-
*/
|
|
112
|
-
async fetchAll() {
|
|
113
|
-
const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/roles`);
|
|
114
|
-
const roles = new Collection_1.Collection();
|
|
115
|
-
for (const roleData of data) {
|
|
116
|
-
const role = this._add(roleData);
|
|
117
|
-
roles.set(role.id, role);
|
|
118
|
-
}
|
|
119
|
-
return roles;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Create a new role
|
|
123
|
-
*/
|
|
124
|
-
async create(options) {
|
|
125
|
-
const body = {};
|
|
126
|
-
if (options?.name)
|
|
127
|
-
body.name = options.name;
|
|
128
|
-
if (options?.color !== undefined) {
|
|
129
|
-
body.color = typeof options.color === 'string'
|
|
130
|
-
? parseInt(options.color.replace('#', ''), 16)
|
|
131
|
-
: options.color;
|
|
132
|
-
}
|
|
133
|
-
if (options?.hoist !== undefined)
|
|
134
|
-
body.hoist = options.hoist;
|
|
135
|
-
if (options?.permissions !== undefined)
|
|
136
|
-
body.permissions = String(options.permissions);
|
|
137
|
-
if (options?.mentionable !== undefined)
|
|
138
|
-
body.mentionable = options.mentionable;
|
|
139
|
-
if (options?.icon)
|
|
140
|
-
body.icon = options.icon;
|
|
141
|
-
if (options?.unicodeEmoji)
|
|
142
|
-
body.unicode_emoji = options.unicodeEmoji;
|
|
143
|
-
const data = await this.client.rest.request('POST', `/guilds/${this.guild.id}/roles`, body);
|
|
144
|
-
const role = this._add(data);
|
|
145
|
-
// Set position if specified
|
|
146
|
-
if (options?.position !== undefined) {
|
|
147
|
-
await this.setPositions([{ role: role.id, position: options.position }]);
|
|
148
|
-
}
|
|
149
|
-
return role;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Delete a role
|
|
153
|
-
*/
|
|
154
|
-
async delete(id, reason) {
|
|
155
|
-
await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/roles/${id}`, reason ? { reason } : undefined);
|
|
156
|
-
this.cache.delete(id);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Edit a role
|
|
160
|
-
*/
|
|
161
|
-
async edit(id, data) {
|
|
162
|
-
const body = {};
|
|
163
|
-
if (data.name !== undefined)
|
|
164
|
-
body.name = data.name;
|
|
165
|
-
if (data.color !== undefined) {
|
|
166
|
-
body.color = typeof data.color === 'string'
|
|
167
|
-
? parseInt(data.color.replace('#', ''), 16)
|
|
168
|
-
: data.color;
|
|
169
|
-
}
|
|
170
|
-
if (data.hoist !== undefined)
|
|
171
|
-
body.hoist = data.hoist;
|
|
172
|
-
if (data.permissions !== undefined)
|
|
173
|
-
body.permissions = String(data.permissions);
|
|
174
|
-
if (data.mentionable !== undefined)
|
|
175
|
-
body.mentionable = data.mentionable;
|
|
176
|
-
if (data.icon !== undefined)
|
|
177
|
-
body.icon = data.icon;
|
|
178
|
-
if (data.unicodeEmoji !== undefined)
|
|
179
|
-
body.unicode_emoji = data.unicodeEmoji;
|
|
180
|
-
const result = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/roles/${id}`, body);
|
|
181
|
-
return this._add(result);
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Set role positions
|
|
185
|
-
*/
|
|
186
|
-
async setPositions(positions) {
|
|
187
|
-
const body = positions.map(p => ({ id: p.role, position: p.position }));
|
|
188
|
-
const data = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/roles`, body);
|
|
189
|
-
const roles = new Collection_1.Collection();
|
|
190
|
-
for (const roleData of data) {
|
|
191
|
-
const role = this._add(roleData);
|
|
192
|
-
roles.set(role.id, role);
|
|
193
|
-
}
|
|
194
|
-
return roles;
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Compare two roles by position
|
|
198
|
-
*/
|
|
199
|
-
comparePositions(role1, role2) {
|
|
200
|
-
const r1 = typeof role1 === 'string' ? this.cache.get(role1) : role1;
|
|
201
|
-
const r2 = typeof role2 === 'string' ? this.cache.get(role2) : role2;
|
|
202
|
-
return (r1?.position ?? 0) - (r2?.position ?? 0);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
exports.RoleManager = RoleManager;
|
|
206
|
-
exports.default = RoleManager;
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9sZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWFuYWdlcnMvUm9sZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCwrQ0FBOEM7QUFDOUMsb0RBQWlEO0FBRWpEOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMkJBQTBCO0lBQ3pELHdDQUF3QztJQUN4QixLQUFLLENBQU07SUFFM0IsWUFBWSxLQUFVLEVBQUUsUUFBd0I7UUFDOUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN0QyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ3RELElBQVcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNO2dC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O0FBRUQsa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYW5hZ2VyIGZvciByb2xlcyB3aXRoIGNhY2hpbmcgYW5kIGxhenkgbG9hZGluZ1xuICovXG5cbmltcG9ydCB7IENhY2hlZE1hbmFnZXIgfSBmcm9tICcuL0Jhc2VNYW5hZ2VyJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi91dGlscy9Db2xsZWN0aW9uJztcblxuLyoqXG4gKiBNYW5hZ2VzIHJvbGVzIGZvciBhIGd1aWxkXG4gKi9cbmV4cG9ydCBjbGFzcyBSb2xlTWFuYWdlciBleHRlbmRzIENhY2hlZE1hbmFnZXI8c3RyaW5nLCBhbnk+IHtcbiAgLyoqIFRoZSBndWlsZCB0aGlzIG1hbmFnZXIgYmVsb25ncyB0byAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGQ6IGFueTtcblxuICBjb25zdHJ1Y3RvcihndWlsZDogYW55LCBpdGVyYWJsZT86IEl0ZXJhYmxlPGFueT4pIHtcbiAgICBzdXBlcihndWlsZC5jbGllbnQsIE9iamVjdCBhcyBhbnksIGl0ZXJhYmxlKTtcbiAgICB0aGlzLmd1aWxkID0gZ3VpbGQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBAZXZlcnlvbmUgcm9sZVxuICAgKi9cbiAgZ2V0IGV2ZXJ5b25lKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0KHRoaXMuZ3VpbGQuaWQpID8/IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBoaWdoZXN0IHJvbGVcbiAgICovXG4gIGdldCBoaWdoZXN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGUucmVkdWNlKChwcmV2LCByb2xlKSA9PiBcbiAgICAgIChyb2xlLnBvc2l0aW9uID4gKHByZXY/LnBvc2l0aW9uID8/IC0xKSkgPyByb2xlIDogcHJldlxuICAgICwgbnVsbCBhcyBhbnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYm90J3MgaGlnaGVzdCByb2xlXG4gICAqL1xuICBnZXQgYm90Um9sZUZvcigpOiAodXNlcklkOiBzdHJpbmcpID0+IGFueSB8IG51bGwge1xuICAgIHJldHVybiAodXNlcklkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IG1lbWJlciA9IHRoaXMuZ3VpbGQubWVtYmVycz8uY2FjaGUuZ2V0KHVzZXJJZCk7XG4gICAgICBpZiAoIW1lbWJlcikgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVxuICAgICAgICAuZmlsdGVyKChyb2xlOiBhbnkpID0+IG1lbWJlci5yb2xlcz8uaW5jbHVkZXMocm9sZS5pZCkpXG4gICAgICAgIC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4gYi5wb3NpdGlvbiAtIGEucG9zaXRpb24pXG4gICAgICAgIC5maXJzdCgpID8/IG51bGw7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSByb2xlIHRvIHRoZSBjYWNoZVxuICAgKi9cbiAgX2FkZChkYXRhOiBhbnksIGNhY2hlID0gdHJ1ZSk6IGFueSB7XG4gICAgY29uc3QgaWQgPSBkYXRhLmlkO1xuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5jYWNoZS5nZXQoaWQpO1xuICAgIFxuICAgIGlmIChleGlzdGluZykge1xuICAgICAgaWYgKGNhY2hlKSBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcbiAgICAgIHJldHVybiBleGlzdGluZztcbiAgICB9XG4gICAgXG4gICAgY29uc3Qgcm9sZSA9IHtcbiAgICAgIGlkLFxuICAgICAgZ3VpbGRJZDogdGhpcy5ndWlsZC5pZCxcbiAgICAgIG5hbWU6IGRhdGEubmFtZSxcbiAgICAgIGNvbG9yOiBkYXRhLmNvbG9yID8/IDAsXG4gICAgICBob2lzdDogZGF0YS5ob2lzdCA/PyBmYWxzZSxcbiAgICAgIHBvc2l0aW9uOiBkYXRhLnBvc2l0aW9uID8/IDAsXG4gICAgICBwZXJtaXNzaW9uczogZGF0YS5wZXJtaXNzaW9ucyA/PyAnMCcsXG4gICAgICBtYW5hZ2VkOiBkYXRhLm1hbmFnZWQgPz8gZmFsc2UsXG4gICAgICBtZW50aW9uYWJsZTogZGF0YS5tZW50aW9uYWJsZSA/PyBmYWxzZSxcbiAgICAgIGljb246IGRhdGEuaWNvbiA/PyBudWxsLFxuICAgICAgdW5pY29kZUVtb2ppOiBkYXRhLnVuaWNvZGVfZW1vamkgPz8gbnVsbCxcbiAgICAgIHRhZ3M6IGRhdGEudGFncyA/PyBudWxsLFxuICAgICAgXG4gICAgICBnZXQgaGV4Q29sb3IoKSB7XG4gICAgICAgIHJldHVybiBgIyR7dGhpcy5jb2xvci50b1N0cmluZygxNikucGFkU3RhcnQoNiwgJzAnKX1gO1xuICAgICAgfSxcbiAgICAgIFxuICAgICAgZ2V0IGNyZWF0ZWRBdCgpIHtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gQmlnSW50KHRoaXMuaWQpID4+IDIybjtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lc3RhbXApICsgMTY0MDk5NTIwMDAwMCk7IC8vIEp1YmJpbyBlcG9jaFxuICAgICAgfSxcbiAgICAgIFxuICAgICAgdG9TdHJpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkID09PSB0aGlzLmd1aWxkSWQgPyAnQGV2ZXJ5b25lJyA6IGA8QCYke3RoaXMuaWR9PmA7XG4gICAgICB9LFxuICAgICAgXG4gICAgICBjb21wYXJlUG9zaXRpb25Ubyhyb2xlOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9zaXRpb24gLSAocm9sZT8ucG9zaXRpb24gPz8gMCk7XG4gICAgICB9LFxuICAgICAgXG4gICAgICBhc3luYyBlZGl0KGRhdGE6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWlsZC5yb2xlcy5lZGl0KHRoaXMuaWQsIGRhdGEpO1xuICAgICAgfSxcbiAgICAgIFxuICAgICAgYXN5bmMgZGVsZXRlKHJlYXNvbj86IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWlsZC5yb2xlcy5kZWxldGUodGhpcy5pZCwgcmVhc29uKTtcbiAgICAgIH0sXG4gICAgICBcbiAgICAgIGFzeW5jIHNldFBvc2l0aW9uKHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3VpbGQucm9sZXMuc2V0UG9zaXRpb25zKFt7IHJvbGU6IHRoaXMuaWQsIHBvc2l0aW9uIH1dKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICBcbiAgICBpZiAoY2FjaGUpIHRoaXMuY2FjaGUuc2V0KGlkLCByb2xlKTtcbiAgICByZXR1cm4gcm9sZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhIHJvbGUgZnJvbSB0aGUgQVBJXG4gICAqL1xuICBhc3luYyBmZXRjaChpZDogc3RyaW5nLCBvcHRpb25zPzogeyBjYWNoZT86IGJvb2xlYW47IGZvcmNlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIW9wdGlvbnM/LmZvcmNlKSB7XG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcbiAgICAgIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nO1xuICAgIH1cbiAgICBcbiAgICAvLyBSb2xlcyBhcmUgZmV0Y2hlZCBhcyBwYXJ0IG9mIGd1aWxkLCBzbyBmZXRjaCBhbGxcbiAgICBjb25zdCByb2xlcyA9IGF3YWl0IHRoaXMuZmV0Y2hBbGwoKTtcbiAgICByZXR1cm4gcm9sZXMuZ2V0KGlkKSA/PyBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGFsbCByb2xlcyBmb3IgdGhlIGd1aWxkXG4gICAqL1xuICBhc3luYyBmZXRjaEFsbCgpOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdCgnR0VUJywgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9yb2xlc2ApO1xuICAgIGNvbnN0IHJvbGVzID0gbmV3IENvbGxlY3Rpb248c3RyaW5nLCBhbnk+KCk7XG4gICAgZm9yIChjb25zdCByb2xlRGF0YSBvZiBkYXRhKSB7XG4gICAgICBjb25zdCByb2xlID0gdGhpcy5fYWRkKHJvbGVEYXRhKTtcbiAgICAgIHJvbGVzLnNldChyb2xlLmlkLCByb2xlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvbGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyByb2xlXG4gICAqL1xuICBhc3luYyBjcmVhdGUob3B0aW9ucz86IHtcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGNvbG9yPzogbnVtYmVyIHwgc3RyaW5nO1xuICAgIGhvaXN0PzogYm9vbGVhbjtcbiAgICBwb3NpdGlvbj86IG51bWJlcjtcbiAgICBwZXJtaXNzaW9ucz86IHN0cmluZyB8IGJpZ2ludDtcbiAgICBtZW50aW9uYWJsZT86IGJvb2xlYW47XG4gICAgaWNvbj86IHN0cmluZztcbiAgICB1bmljb2RlRW1vamk/OiBzdHJpbmc7XG4gICAgcmVhc29uPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcbiAgICBpZiAob3B0aW9ucz8ubmFtZSkgYm9keS5uYW1lID0gb3B0aW9ucy5uYW1lO1xuICAgIGlmIChvcHRpb25zPy5jb2xvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIG9wdGlvbnMuY29sb3IgPT09ICdzdHJpbmcnIFxuICAgICAgICA/IHBhcnNlSW50KG9wdGlvbnMuY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpIFxuICAgICAgICA6IG9wdGlvbnMuY29sb3I7XG4gICAgfVxuICAgIGlmIChvcHRpb25zPy5ob2lzdCAhPT0gdW5kZWZpbmVkKSBib2R5LmhvaXN0ID0gb3B0aW9ucy5ob2lzdDtcbiAgICBpZiAob3B0aW9ucz8ucGVybWlzc2lvbnMgIT09IHVuZGVmaW5lZCkgYm9keS5wZXJtaXNzaW9ucyA9IFN0cmluZyhvcHRpb25zLnBlcm1pc3Npb25zKTtcbiAgICBpZiAob3B0aW9ucz8ubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IG9wdGlvbnMubWVudGlvbmFibGU7XG4gICAgaWYgKG9wdGlvbnM/Lmljb24pIGJvZHkuaWNvbiA9IG9wdGlvbnMuaWNvbjtcbiAgICBpZiAob3B0aW9ucz8udW5pY29kZUVtb2ppKSBib2R5LnVuaWNvZGVfZW1vamkgPSBvcHRpb25zLnVuaWNvZGVFbW9qaTtcbiAgICBcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdQT1NUJywgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9yb2xlc2AsIGJvZHkpO1xuICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9hZGQoZGF0YSk7XG4gICAgXG4gICAgLy8gU2V0IHBvc2l0aW9uIGlmIHNwZWNpZmllZFxuICAgIGlmIChvcHRpb25zPy5wb3NpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhd2FpdCB0aGlzLnNldFBvc2l0aW9ucyhbeyByb2xlOiByb2xlLmlkLCBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvbiB9XSk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiByb2xlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhIHJvbGVcbiAgICovXG4gIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoJ0RFTEVURScsIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vcm9sZXMvJHtpZH1gLCBcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcbiAgICApO1xuICAgIHRoaXMuY2FjaGUuZGVsZXRlKGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFZGl0IGEgcm9sZVxuICAgKi9cbiAgYXN5bmMgZWRpdChpZDogc3RyaW5nLCBkYXRhOiB7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBjb2xvcj86IG51bWJlciB8IHN0cmluZztcbiAgICBob2lzdD86IGJvb2xlYW47XG4gICAgcG9zaXRpb24/OiBudW1iZXI7XG4gICAgcGVybWlzc2lvbnM/OiBzdHJpbmcgfCBiaWdpbnQ7XG4gICAgbWVudGlvbmFibGU/OiBib29sZWFuO1xuICAgIGljb24/OiBzdHJpbmcgfCBudWxsO1xuICAgIHVuaWNvZGVFbW9qaT86IHN0cmluZyB8IG51bGw7XG4gICAgcmVhc29uPzogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcbiAgICBpZiAoZGF0YS5uYW1lICE9PSB1bmRlZmluZWQpIGJvZHkubmFtZSA9IGRhdGEubmFtZTtcbiAgICBpZiAoZGF0YS5jb2xvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIGRhdGEuY29sb3IgPT09ICdzdHJpbmcnIFxuICAgICAgICA/IHBhcnNlSW50KGRhdGEuY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpIFxuICAgICAgICA6IGRhdGEuY29sb3I7XG4gICAgfVxuICAgIGlmIChkYXRhLmhvaXN0ICE9PSB1bmRlZmluZWQpIGJvZHkuaG9pc3QgPSBkYXRhLmhvaXN0O1xuICAgIGlmIChkYXRhLnBlcm1pc3Npb25zICE9PSB1bmRlZmluZWQpIGJvZHkucGVybWlzc2lvbnMgPSBTdHJpbmcoZGF0YS5wZXJtaXNzaW9ucyk7XG4gICAgaWYgKGRhdGEubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IGRhdGEubWVudGlvbmFibGU7XG4gICAgaWYgKGRhdGEuaWNvbiAhPT0gdW5kZWZpbmVkKSBib2R5Lmljb24gPSBkYXRhLmljb247XG4gICAgaWYgKGRhdGEudW5pY29kZUVtb2ppICE9PSB1bmRlZmluZWQpIGJvZHkudW5pY29kZV9lbW9qaSA9IGRhdGEudW5pY29kZUVtb2ppO1xuICAgIFxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdCgnUEFUQ0gnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzLyR7aWR9YCwgYm9keSk7XG4gICAgcmV0dXJuIHRoaXMuX2FkZChyZXN1bHQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCByb2xlIHBvc2l0aW9uc1xuICAgKi9cbiAgYXN5bmMgc2V0UG9zaXRpb25zKHBvc2l0aW9uczogQXJyYXk8eyByb2xlOiBzdHJpbmc7IHBvc2l0aW9uOiBudW1iZXIgfT4pOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgYm9keSA9IHBvc2l0aW9ucy5tYXAocCA9PiAoeyBpZDogcC5yb2xlLCBwb3NpdGlvbjogcC5wb3NpdGlvbiB9KSk7XG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdCgnUEFUQ0gnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzYCwgYm9keSk7XG4gICAgXG4gICAgY29uc3Qgcm9sZXMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIGFueT4oKTtcbiAgICBmb3IgKGNvbnN0IHJvbGVEYXRhIG9mIGRhdGEpIHtcbiAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9hZGQocm9sZURhdGEpO1xuICAgICAgcm9sZXMuc2V0KHJvbGUuaWQsIHJvbGUpO1xuICAgIH1cbiAgICByZXR1cm4gcm9sZXM7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZSB0d28gcm9sZXMgYnkgcG9zaXRpb25cbiAgICovXG4gIGNvbXBhcmVQb3NpdGlvbnMocm9sZTE6IHN0cmluZyB8IGFueSwgcm9sZTI6IHN0cmluZyB8IGFueSk6IG51bWJlciB7XG4gICAgY29uc3QgcjEgPSB0eXBlb2Ygcm9sZTEgPT09ICdzdHJpbmcnID8gdGhpcy5jYWNoZS5nZXQocm9sZTEpIDogcm9sZTE7XG4gICAgY29uc3QgcjIgPSB0eXBlb2Ygcm9sZTIgPT09ICdzdHJpbmcnID8gdGhpcy5jYWNoZS5nZXQocm9sZTIpIDogcm9sZTI7XG4gICAgcmV0dXJuIChyMT8ucG9zaXRpb24gPz8gMCkgLSAocjI/LnBvc2l0aW9uID8/IDApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJvbGVNYW5hZ2VyO1xuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Manager exports
|
|
4
|
-
*/
|
|
5
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
-
}
|
|
11
|
-
Object.defineProperty(o, k2, desc);
|
|
12
|
-
}) : (function(o, m, k, k2) {
|
|
13
|
-
if (k2 === undefined) k2 = k;
|
|
14
|
-
o[k2] = m[k];
|
|
15
|
-
}));
|
|
16
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
__exportStar(require("./BaseManager"), exports);
|
|
21
|
-
__exportStar(require("./GuildMemberManager"), exports);
|
|
22
|
-
__exportStar(require("./ChannelManager"), exports);
|
|
23
|
-
__exportStar(require("./RoleManager"), exports);
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWFuYWdlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQThCO0FBQzlCLHVEQUFxQztBQUNyQyxtREFBaUM7QUFDakMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNYW5hZ2VyIGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL0Jhc2VNYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vR3VpbGRNZW1iZXJNYW5hZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vQ2hhbm5lbE1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9Sb2xlTWFuYWdlcic7XG4iXX0=
|