@jubbio/core 1.3.1 → 1.3.2
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/cjs/Client.d.ts +157 -0
- package/dist/cjs/Client.js +640 -0
- package/dist/cjs/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/cjs/builders/ActionRowBuilder.js +68 -0
- package/dist/cjs/builders/ButtonBuilder.d.ts +77 -0
- package/dist/cjs/builders/ButtonBuilder.js +96 -0
- package/dist/cjs/builders/EmbedBuilder.d.ts +157 -0
- package/dist/cjs/builders/EmbedBuilder.js +208 -0
- package/dist/cjs/builders/ModalBuilder.d.ts +122 -0
- package/dist/cjs/builders/ModalBuilder.js +162 -0
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/cjs/builders/SelectMenuBuilder.js +165 -0
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/cjs/builders/SlashCommandBuilder.js +324 -0
- package/dist/cjs/builders/index.d.ts +9 -0
- package/dist/cjs/builders/index.js +26 -0
- package/dist/cjs/enums.d.ts +191 -0
- package/dist/cjs/enums.js +211 -0
- package/dist/cjs/index.d.ts +25 -0
- package/dist/cjs/index.js +130 -0
- package/dist/cjs/managers/BaseManager.d.ts +69 -0
- package/dist/cjs/managers/BaseManager.js +106 -0
- package/dist/cjs/managers/ChannelManager.d.ts +95 -0
- package/dist/cjs/managers/ChannelManager.js +205 -0
- package/dist/cjs/managers/GuildMemberManager.d.ts +74 -0
- package/dist/cjs/managers/GuildMemberManager.js +157 -0
- package/dist/cjs/managers/RoleManager.d.ts +84 -0
- package/dist/cjs/managers/RoleManager.js +207 -0
- package/dist/cjs/managers/index.d.ts +7 -0
- package/dist/cjs/managers/index.js +24 -0
- package/dist/cjs/rest/REST.d.ts +527 -0
- package/dist/cjs/rest/REST.js +904 -0
- package/dist/cjs/rest/index.d.ts +1 -0
- package/dist/cjs/rest/index.js +18 -0
- package/dist/cjs/sharding/ShardingManager.d.ts +179 -0
- package/dist/cjs/sharding/ShardingManager.js +375 -0
- package/dist/cjs/sharding/index.d.ts +4 -0
- package/dist/cjs/sharding/index.js +21 -0
- package/dist/cjs/structures/Channel.d.ts +122 -0
- package/dist/cjs/structures/Channel.js +240 -0
- package/dist/cjs/structures/Collection.d.ts +53 -0
- package/dist/cjs/structures/Collection.js +115 -0
- package/dist/cjs/structures/Guild.d.ts +59 -0
- package/dist/cjs/structures/Guild.js +94 -0
- package/dist/cjs/structures/GuildMember.d.ts +174 -0
- package/dist/cjs/structures/GuildMember.js +311 -0
- package/dist/cjs/structures/Interaction.d.ts +245 -0
- package/dist/cjs/structures/Interaction.js +450 -0
- package/dist/cjs/structures/Message.d.ts +98 -0
- package/dist/cjs/structures/Message.js +195 -0
- package/dist/cjs/structures/User.d.ts +37 -0
- package/dist/cjs/structures/User.js +65 -0
- package/dist/cjs/structures/index.d.ts +7 -0
- package/dist/cjs/structures/index.js +25 -0
- package/dist/cjs/structures.d.ts +1 -0
- package/dist/cjs/structures.js +19 -0
- package/dist/cjs/types.d.ts +255 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/utils/BitField.d.ts +66 -0
- package/dist/cjs/utils/BitField.js +138 -0
- package/dist/cjs/utils/Collection.d.ts +116 -0
- package/dist/cjs/utils/Collection.js +265 -0
- package/dist/cjs/utils/Collector.d.ts +152 -0
- package/dist/cjs/utils/Collector.js +314 -0
- package/dist/cjs/utils/DataResolver.d.ts +61 -0
- package/dist/cjs/utils/DataResolver.js +146 -0
- package/dist/cjs/utils/Formatters.d.ts +145 -0
- package/dist/cjs/utils/Formatters.js +213 -0
- package/dist/cjs/utils/IntentsBitField.d.ts +85 -0
- package/dist/cjs/utils/IntentsBitField.js +99 -0
- package/dist/cjs/utils/Partials.d.ts +104 -0
- package/dist/cjs/utils/Partials.js +148 -0
- package/dist/cjs/utils/PermissionsBitField.d.ts +118 -0
- package/dist/cjs/utils/PermissionsBitField.js +145 -0
- package/dist/cjs/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/cjs/utils/SnowflakeUtil.js +93 -0
- package/dist/cjs/utils/Sweepers.d.ts +119 -0
- package/dist/cjs/utils/Sweepers.js +249 -0
- package/dist/cjs/utils/index.d.ts +13 -0
- package/dist/cjs/utils/index.js +30 -0
- package/dist/esm/Client.js +634 -0
- package/dist/esm/builders/ActionRowBuilder.js +64 -0
- package/dist/esm/builders/ButtonBuilder.js +92 -0
- package/dist/esm/builders/EmbedBuilder.js +204 -0
- package/dist/esm/builders/ModalBuilder.js +157 -0
- package/dist/esm/builders/SelectMenuBuilder.js +161 -0
- package/dist/esm/builders/SlashCommandBuilder.js +311 -0
- package/dist/esm/builders/index.js +10 -0
- package/dist/esm/enums.js +208 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/managers/BaseManager.js +100 -0
- package/dist/esm/managers/ChannelManager.js +200 -0
- package/dist/esm/managers/GuildMemberManager.js +153 -0
- package/dist/esm/managers/RoleManager.js +203 -0
- package/dist/esm/managers/index.js +8 -0
- package/dist/esm/rest/REST.js +900 -0
- package/dist/esm/rest/index.js +2 -0
- package/dist/esm/sharding/ShardingManager.js +366 -0
- package/dist/esm/sharding/index.js +5 -0
- package/dist/esm/structures/Channel.js +232 -0
- package/dist/esm/structures/Collection.js +111 -0
- package/dist/esm/structures/Guild.js +90 -0
- package/dist/esm/structures/GuildMember.js +306 -0
- package/dist/esm/structures/Interaction.js +438 -0
- package/dist/esm/structures/Message.js +191 -0
- package/dist/esm/structures/User.js +61 -0
- package/dist/esm/structures/index.js +9 -0
- package/dist/esm/structures.js +3 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils/BitField.js +134 -0
- package/dist/esm/utils/Collection.js +261 -0
- package/dist/esm/utils/Collector.js +305 -0
- package/dist/esm/utils/DataResolver.js +142 -0
- package/dist/esm/utils/Formatters.js +191 -0
- package/dist/esm/utils/IntentsBitField.js +93 -0
- package/dist/esm/utils/Partials.js +137 -0
- package/dist/esm/utils/PermissionsBitField.js +141 -0
- package/dist/esm/utils/SnowflakeUtil.js +89 -0
- package/dist/esm/utils/Sweepers.js +245 -0
- package/dist/esm/utils/index.js +14 -0
- package/package.json +14 -4
|
@@ -0,0 +1,207 @@
|
|
|
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
|
|
@@ -0,0 +1,24 @@
|
|
|
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=
|