@jubbio/core 1.0.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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/Client.d.ts +147 -0
  4. package/dist/Client.js +471 -0
  5. package/dist/builders/ActionRowBuilder.d.ts +53 -0
  6. package/dist/builders/ActionRowBuilder.js +68 -0
  7. package/dist/builders/ButtonBuilder.d.ts +77 -0
  8. package/dist/builders/ButtonBuilder.js +96 -0
  9. package/dist/builders/EmbedBuilder.d.ts +157 -0
  10. package/dist/builders/EmbedBuilder.js +199 -0
  11. package/dist/builders/ModalBuilder.d.ts +122 -0
  12. package/dist/builders/ModalBuilder.js +162 -0
  13. package/dist/builders/SelectMenuBuilder.d.ts +123 -0
  14. package/dist/builders/SelectMenuBuilder.js +165 -0
  15. package/dist/builders/SlashCommandBuilder.d.ts +197 -0
  16. package/dist/builders/SlashCommandBuilder.js +324 -0
  17. package/dist/builders/index.d.ts +9 -0
  18. package/dist/builders/index.js +26 -0
  19. package/dist/enums.d.ts +196 -0
  20. package/dist/enums.js +216 -0
  21. package/dist/index.d.ts +25 -0
  22. package/dist/index.js +128 -0
  23. package/dist/managers/BaseManager.d.ts +69 -0
  24. package/dist/managers/BaseManager.js +106 -0
  25. package/dist/managers/ChannelManager.d.ts +98 -0
  26. package/dist/managers/ChannelManager.js +209 -0
  27. package/dist/managers/GuildMemberManager.d.ts +74 -0
  28. package/dist/managers/GuildMemberManager.js +156 -0
  29. package/dist/managers/RoleManager.d.ts +84 -0
  30. package/dist/managers/RoleManager.js +207 -0
  31. package/dist/managers/index.d.ts +7 -0
  32. package/dist/managers/index.js +24 -0
  33. package/dist/rest/REST.d.ts +483 -0
  34. package/dist/rest/REST.js +805 -0
  35. package/dist/rest/index.d.ts +1 -0
  36. package/dist/rest/index.js +18 -0
  37. package/dist/sharding/ShardingManager.d.ts +179 -0
  38. package/dist/sharding/ShardingManager.js +375 -0
  39. package/dist/sharding/index.d.ts +4 -0
  40. package/dist/sharding/index.js +21 -0
  41. package/dist/structures/Channel.d.ts +120 -0
  42. package/dist/structures/Channel.js +224 -0
  43. package/dist/structures/Collection.d.ts +53 -0
  44. package/dist/structures/Collection.js +115 -0
  45. package/dist/structures/Guild.d.ts +59 -0
  46. package/dist/structures/Guild.js +90 -0
  47. package/dist/structures/GuildMember.d.ts +130 -0
  48. package/dist/structures/GuildMember.js +208 -0
  49. package/dist/structures/Interaction.d.ts +224 -0
  50. package/dist/structures/Interaction.js +404 -0
  51. package/dist/structures/Message.d.ts +93 -0
  52. package/dist/structures/Message.js +145 -0
  53. package/dist/structures/User.d.ts +37 -0
  54. package/dist/structures/User.js +65 -0
  55. package/dist/structures/index.d.ts +7 -0
  56. package/dist/structures/index.js +25 -0
  57. package/dist/structures.d.ts +1 -0
  58. package/dist/structures.js +19 -0
  59. package/dist/types.d.ts +255 -0
  60. package/dist/types.js +3 -0
  61. package/dist/utils/BitField.d.ts +66 -0
  62. package/dist/utils/BitField.js +138 -0
  63. package/dist/utils/Collection.d.ts +116 -0
  64. package/dist/utils/Collection.js +265 -0
  65. package/dist/utils/Collector.d.ts +152 -0
  66. package/dist/utils/Collector.js +314 -0
  67. package/dist/utils/DataResolver.d.ts +61 -0
  68. package/dist/utils/DataResolver.js +146 -0
  69. package/dist/utils/Formatters.d.ts +145 -0
  70. package/dist/utils/Formatters.js +213 -0
  71. package/dist/utils/IntentsBitField.d.ts +85 -0
  72. package/dist/utils/IntentsBitField.js +99 -0
  73. package/dist/utils/Partials.d.ts +105 -0
  74. package/dist/utils/Partials.js +149 -0
  75. package/dist/utils/PermissionsBitField.d.ts +118 -0
  76. package/dist/utils/PermissionsBitField.js +145 -0
  77. package/dist/utils/SnowflakeUtil.d.ts +63 -0
  78. package/dist/utils/SnowflakeUtil.js +93 -0
  79. package/dist/utils/Sweepers.d.ts +127 -0
  80. package/dist/utils/Sweepers.js +270 -0
  81. package/dist/utils/index.d.ts +13 -0
  82. package/dist/utils/index.js +30 -0
  83. package/package.json +37 -0
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ /**
3
+ * Manager for guild members with caching and lazy loading
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GuildMemberManager = void 0;
7
+ const BaseManager_1 = require("./BaseManager");
8
+ const Collection_1 = require("../utils/Collection");
9
+ /**
10
+ * Manages guild members
11
+ */
12
+ class GuildMemberManager extends BaseManager_1.CachedManager {
13
+ /** The guild this manager belongs to */
14
+ guild;
15
+ constructor(guild, iterable) {
16
+ // Use a simple object as placeholder since we don't have GuildMember class yet
17
+ super(guild.client, Object, iterable);
18
+ this.guild = guild;
19
+ }
20
+ /**
21
+ * Add a member to the cache
22
+ */
23
+ _add(data, cache = true) {
24
+ const id = data.user?.id ?? data.id;
25
+ const existing = this.cache.get(id);
26
+ if (existing) {
27
+ if (cache) {
28
+ Object.assign(existing, data);
29
+ }
30
+ return existing;
31
+ }
32
+ const member = {
33
+ id,
34
+ guildId: this.guild.id,
35
+ user: data.user,
36
+ nick: data.nick,
37
+ roles: data.roles ?? [],
38
+ joinedAt: data.joined_at ? new Date(data.joined_at) : null,
39
+ premiumSince: data.premium_since ? new Date(data.premium_since) : null,
40
+ deaf: data.deaf ?? false,
41
+ mute: data.mute ?? false,
42
+ pending: data.pending ?? false,
43
+ permissions: data.permissions,
44
+ communicationDisabledUntil: data.communication_disabled_until
45
+ ? new Date(data.communication_disabled_until)
46
+ : null,
47
+ // Helper methods
48
+ get displayName() {
49
+ return this.nick ?? this.user?.display_name ?? this.user?.username ?? 'Unknown';
50
+ },
51
+ toString() {
52
+ return `<@${this.id}>`;
53
+ },
54
+ };
55
+ if (cache) {
56
+ this.cache.set(id, member);
57
+ }
58
+ return member;
59
+ }
60
+ /**
61
+ * Fetch a member from the API
62
+ */
63
+ async fetch(id, options) {
64
+ if (!options?.force) {
65
+ const existing = this.cache.get(id);
66
+ if (existing)
67
+ return existing;
68
+ }
69
+ const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/members/${id}`);
70
+ return this._add(data, options?.cache ?? true);
71
+ }
72
+ /**
73
+ * Fetch multiple members
74
+ */
75
+ async fetchMany(options) {
76
+ const params = new URLSearchParams();
77
+ if (options?.limit)
78
+ params.set('limit', String(options.limit));
79
+ if (options?.after)
80
+ params.set('after', options.after);
81
+ if (options?.query)
82
+ params.set('query', options.query);
83
+ const data = await this.client.rest.request('GET', `/guilds/${this.guild.id}/members?${params}`);
84
+ const members = new Collection_1.Collection();
85
+ for (const memberData of data) {
86
+ const member = this._add(memberData);
87
+ members.set(member.id, member);
88
+ }
89
+ return members;
90
+ }
91
+ /**
92
+ * Search for members by query
93
+ */
94
+ async search(options) {
95
+ return this.fetchMany({ query: options.query, limit: options.limit ?? 10 });
96
+ }
97
+ /**
98
+ * Kick a member
99
+ */
100
+ async kick(id, reason) {
101
+ await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/members/${id}`, reason ? { reason } : undefined);
102
+ this.cache.delete(id);
103
+ }
104
+ /**
105
+ * Ban a member
106
+ */
107
+ async ban(id, options) {
108
+ await this.client.rest.request('PUT', `/guilds/${this.guild.id}/bans/${id}`, {
109
+ delete_message_days: options?.deleteMessageDays,
110
+ reason: options?.reason,
111
+ });
112
+ this.cache.delete(id);
113
+ }
114
+ /**
115
+ * Unban a user
116
+ */
117
+ async unban(id, reason) {
118
+ await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/bans/${id}`, reason ? { reason } : undefined);
119
+ }
120
+ /**
121
+ * Edit a member
122
+ */
123
+ async edit(id, data) {
124
+ const body = {};
125
+ if (data.nick !== undefined)
126
+ body.nick = data.nick;
127
+ if (data.roles !== undefined)
128
+ body.roles = data.roles;
129
+ if (data.mute !== undefined)
130
+ body.mute = data.mute;
131
+ if (data.deaf !== undefined)
132
+ body.deaf = data.deaf;
133
+ if (data.channel_id !== undefined)
134
+ body.channel_id = data.channel_id;
135
+ if (data.communication_disabled_until !== undefined) {
136
+ body.communication_disabled_until = data.communication_disabled_until?.toISOString() ?? null;
137
+ }
138
+ const result = await this.client.rest.request('PATCH', `/guilds/${this.guild.id}/members/${id}`, body);
139
+ return this._add(result);
140
+ }
141
+ /**
142
+ * Add a role to a member
143
+ */
144
+ async addRole(memberId, roleId, reason) {
145
+ await this.client.rest.request('PUT', `/guilds/${this.guild.id}/members/${memberId}/roles/${roleId}`, reason ? { reason } : undefined);
146
+ }
147
+ /**
148
+ * Remove a role from a member
149
+ */
150
+ async removeRole(memberId, roleId, reason) {
151
+ await this.client.rest.request('DELETE', `/guilds/${this.guild.id}/members/${memberId}/roles/${roleId}`, reason ? { reason } : undefined);
152
+ }
153
+ }
154
+ exports.GuildMemberManager = GuildMemberManager;
155
+ exports.default = GuildMemberManager;
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3VpbGRNZW1iZXJNYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hbmFnZXJzL0d1aWxkTWVtYmVyTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILCtDQUE4QztBQUM5QyxvREFBaUQ7QUFFakQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLDJCQUEwQjtJQUNoRSx3Q0FBd0M7SUFDeEIsS0FBSyxDQUFNO0lBRTNCLFlBQVksS0FBVSxFQUFFLFFBQXdCO1FBQzlDLCtFQUErRTtRQUMvRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxDQUFDLElBQVMsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ2hDLENBQUM7WUFDRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUc7WUFDYixFQUFFO1lBQ0YsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1lB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R0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDM0MsT0FBTyxFQUNQLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQ3hDLElBQUksQ0FDTCxDQUFDO1FBRUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsTUFBZTtRQUM3RCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDNUIsS0FBSyxFQUNMLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksUUFBUSxVQUFVLE1BQU0sRUFBRSxFQUM5RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsTUFBZTtRQUNoRSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FDNUIsUUFBUSxFQUNSLFdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksUUFBUSxVQUFVLE1BQU0sRUFBRSxFQUM5RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXJNRCxnREFxTUM7QUFFRCxrQkFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBNYW5hZ2VyIGZvciBndWlsZCBtZW1iZXJzIHdpdGggY2FjaGluZyBhbmQgbGF6eSBsb2FkaW5nXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVkTWFuYWdlciB9IGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvQ29sbGVjdGlvbic7XHJcblxyXG4vKipcclxuICogTWFuYWdlcyBndWlsZCBtZW1iZXJzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR3VpbGRNZW1iZXJNYW5hZ2VyIGV4dGVuZHMgQ2FjaGVkTWFuYWdlcjxzdHJpbmcsIGFueT4ge1xyXG4gIC8qKiBUaGUgZ3VpbGQgdGhpcyBtYW5hZ2VyIGJlbG9uZ3MgdG8gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZ3VpbGQ6IGFueSwgaXRlcmFibGU/OiBJdGVyYWJsZTxhbnk+KSB7XHJcbiAgICAvLyBVc2UgYSBzaW1wbGUgb2JqZWN0IGFzIHBsYWNlaG9sZGVyIHNpbmNlIHdlIGRvbid0IGhhdmUgR3VpbGRNZW1iZXIgY2xhc3MgeWV0XHJcbiAgICBzdXBlcihndWlsZC5jbGllbnQsIE9iamVjdCBhcyBhbnksIGl0ZXJhYmxlKTtcclxuICAgIHRoaXMuZ3VpbGQgPSBndWlsZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG1lbWJlciB0byB0aGUgY2FjaGVcclxuICAgKi9cclxuICBfYWRkKGRhdGE6IGFueSwgY2FjaGUgPSB0cnVlKTogYW55IHtcclxuICAgIGNvbnN0IGlkID0gZGF0YS51c2VyPy5pZCA/PyBkYXRhLmlkO1xyXG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmNhY2hlLmdldChpZCk7XHJcbiAgICBcclxuICAgIGlmIChleGlzdGluZykge1xyXG4gICAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IG1lbWJlciA9IHtcclxuICAgICAgaWQsXHJcbiAgICAgIGd1aWxkSWQ6IHRoaXMuZ3VpbGQuaWQsXHJcbiAgICAgIHVzZXI6IGRhdGEudXNlcixcclxuICAgICAgbmljazogZGF0YS5uaWNrLFxyXG4gICAgICByb2xlczogZGF0YS5yb2xlcyA/PyBbXSxcclxuICAgICAgam9pbmVkQXQ6IGRhdGEuam9pbmVkX2F0ID8gbmV3IERhdGUoZGF0YS5qb2luZWRfYXQpIDogbnVsbCxcclxuICAgICAgcHJlbWl1bVNpbmNlOiBkYXRhLnByZW1pdW1fc2luY2UgPyBuZXcgRGF0ZShkYXRhLnByZW1pdW1fc2luY2UpIDogbnVsbCxcclxuICAgICAgZGVhZjogZGF0YS5kZWFmID8/IGZhbHNlLFxyXG4gICAgICBtdXRlOiBkYXRhLm11dGUgPz8gZmFsc2UsXHJcbiAgICAgIHBlbmRpbmc6IGRhdGEucGVuZGluZyA/PyBmYWxzZSxcclxuICAgICAgcGVybWlzc2lvbnM6IGRhdGEucGVybWlzc2lvbnMsXHJcbiAgICAgIGNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsOiBkYXRhLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwgXHJcbiAgICAgICAgPyBuZXcgRGF0ZShkYXRhLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpIFxyXG4gICAgICAgIDogbnVsbCxcclxuICAgICAgXHJcbiAgICAgIC8vIEhlbHBlciBtZXRob2RzXHJcbiAgICAgIGdldCBkaXNwbGF5TmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5uaWNrID8/IHRoaXMudXNlcj8uZGlzcGxheV9uYW1lID8/IHRoaXMudXNlcj8udXNlcm5hbWUgPz8gJ1Vua25vd24nO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIGA8QCR7dGhpcy5pZH0+YDtcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICBcclxuICAgIGlmIChjYWNoZSkge1xyXG4gICAgICB0aGlzLmNhY2hlLnNldChpZCwgbWVtYmVyKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgcmV0dXJuIG1lbWJlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZldGNoIGEgbWVtYmVyIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCFvcHRpb25zPy5mb3JjZSkge1xyXG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcclxuICAgICAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoXHJcbiAgICAgICdHRVQnLFxyXG4gICAgICBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L21lbWJlcnMvJHtpZH1gXHJcbiAgICApO1xyXG4gICAgXHJcbiAgICByZXR1cm4gdGhpcy5fYWRkKGRhdGEsIG9wdGlvbnM/LmNhY2hlID8/IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggbXVsdGlwbGUgbWVtYmVyc1xyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoTWFueShvcHRpb25zPzogeyBcclxuICAgIGxpbWl0PzogbnVtYmVyOyBcclxuICAgIGFmdGVyPzogc3RyaW5nO1xyXG4gICAgcXVlcnk/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8Q29sbGVjdGlvbjxzdHJpbmcsIGFueT4+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcclxuICAgIGlmIChvcHRpb25zPy5saW1pdCkgcGFyYW1zLnNldCgnbGltaXQnLCBTdHJpbmcob3B0aW9ucy5saW1pdCkpO1xyXG4gICAgaWYgKG9wdGlvbnM/LmFmdGVyKSBwYXJhbXMuc2V0KCdhZnRlcicsIG9wdGlvbnMuYWZ0ZXIpO1xyXG4gICAgaWYgKG9wdGlvbnM/LnF1ZXJ5KSBwYXJhbXMuc2V0KCdxdWVyeScsIG9wdGlvbnMucXVlcnkpO1xyXG4gICAgXHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KFxyXG4gICAgICAnR0VUJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzPyR7cGFyYW1zfWBcclxuICAgICk7XHJcbiAgICBcclxuICAgIGNvbnN0IG1lbWJlcnMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIGFueT4oKTtcclxuICAgIGZvciAoY29uc3QgbWVtYmVyRGF0YSBvZiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IG1lbWJlciA9IHRoaXMuX2FkZChtZW1iZXJEYXRhKTtcclxuICAgICAgbWVtYmVycy5zZXQobWVtYmVyLmlkLCBtZW1iZXIpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gbWVtYmVycztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlYXJjaCBmb3IgbWVtYmVycyBieSBxdWVyeVxyXG4gICAqL1xyXG4gIGFzeW5jIHNlYXJjaChvcHRpb25zOiB7IHF1ZXJ5OiBzdHJpbmc7IGxpbWl0PzogbnVtYmVyIH0pOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5mZXRjaE1hbnkoeyBxdWVyeTogb3B0aW9ucy5xdWVyeSwgbGltaXQ6IG9wdGlvbnMubGltaXQgPz8gMTAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBLaWNrIGEgbWVtYmVyXHJcbiAgICovXHJcbiAgYXN5bmMga2ljayhpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vbWVtYmVycy8ke2lkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCYW4gYSBtZW1iZXJcclxuICAgKi9cclxuICBhc3luYyBiYW4oaWQ6IHN0cmluZywgb3B0aW9ucz86IHsgZGVsZXRlTWVzc2FnZURheXM/OiBudW1iZXI7IHJlYXNvbj86IHN0cmluZyB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoXHJcbiAgICAgICdQVVQnLFxyXG4gICAgICBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L2JhbnMvJHtpZH1gLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGVsZXRlX21lc3NhZ2VfZGF5czogb3B0aW9ucz8uZGVsZXRlTWVzc2FnZURheXMsXHJcbiAgICAgICAgcmVhc29uOiBvcHRpb25zPy5yZWFzb24sXHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShpZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJhbiBhIHVzZXJcclxuICAgKi9cclxuICBhc3luYyB1bmJhbihpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vYmFucy8ke2lkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZGl0IGEgbWVtYmVyXHJcbiAgICovXHJcbiAgYXN5bmMgZWRpdChpZDogc3RyaW5nLCBkYXRhOiB7XHJcbiAgICBuaWNrPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHJvbGVzPzogc3RyaW5nW107XHJcbiAgICBtdXRlPzogYm9vbGVhbjtcclxuICAgIGRlYWY/OiBib29sZWFuO1xyXG4gICAgY2hhbm5lbF9pZD86IHN0cmluZyB8IG51bGw7XHJcbiAgICBjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsPzogRGF0ZSB8IG51bGw7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChkYXRhLm5pY2sgIT09IHVuZGVmaW5lZCkgYm9keS5uaWNrID0gZGF0YS5uaWNrO1xyXG4gICAgaWYgKGRhdGEucm9sZXMgIT09IHVuZGVmaW5lZCkgYm9keS5yb2xlcyA9IGRhdGEucm9sZXM7XHJcbiAgICBpZiAoZGF0YS5tdXRlICE9PSB1bmRlZmluZWQpIGJvZHkubXV0ZSA9IGRhdGEubXV0ZTtcclxuICAgIGlmIChkYXRhLmRlYWYgIT09IHVuZGVmaW5lZCkgYm9keS5kZWFmID0gZGF0YS5kZWFmO1xyXG4gICAgaWYgKGRhdGEuY2hhbm5lbF9pZCAhPT0gdW5kZWZpbmVkKSBib2R5LmNoYW5uZWxfaWQgPSBkYXRhLmNoYW5uZWxfaWQ7XHJcbiAgICBpZiAoZGF0YS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgYm9keS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsID0gZGF0YS5jb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsPy50b0lTT1N0cmluZygpID8/IG51bGw7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ1BBVENIJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzLyR7aWR9YCxcclxuICAgICAgYm9keVxyXG4gICAgKTtcclxuICAgIFxyXG4gICAgcmV0dXJuIHRoaXMuX2FkZChyZXN1bHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgcm9sZSB0byBhIG1lbWJlclxyXG4gICAqL1xyXG4gIGFzeW5jIGFkZFJvbGUobWVtYmVySWQ6IHN0cmluZywgcm9sZUlkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KFxyXG4gICAgICAnUFVUJyxcclxuICAgICAgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9tZW1iZXJzLyR7bWVtYmVySWR9L3JvbGVzLyR7cm9sZUlkfWAsXHJcbiAgICAgIHJlYXNvbiA/IHsgcmVhc29uIH0gOiB1bmRlZmluZWRcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgYSByb2xlIGZyb20gYSBtZW1iZXJcclxuICAgKi9cclxuICBhc3luYyByZW1vdmVSb2xlKG1lbWJlcklkOiBzdHJpbmcsIHJvbGVJZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdChcclxuICAgICAgJ0RFTEVURScsXHJcbiAgICAgIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vbWVtYmVycy8ke21lbWJlcklkfS9yb2xlcy8ke3JvbGVJZH1gLFxyXG4gICAgICByZWFzb24gPyB7IHJlYXNvbiB9IDogdW5kZWZpbmVkXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgR3VpbGRNZW1iZXJNYW5hZ2VyO1xyXG4iXX0=
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Manager for roles with caching and lazy loading
3
+ */
4
+ import { CachedManager } from './BaseManager';
5
+ import { Collection } from '../utils/Collection';
6
+ /**
7
+ * Manages roles for a guild
8
+ */
9
+ export declare class RoleManager extends CachedManager<string, any> {
10
+ /** The guild this manager belongs to */
11
+ readonly guild: any;
12
+ constructor(guild: any, iterable?: Iterable<any>);
13
+ /**
14
+ * Get the @everyone role
15
+ */
16
+ get everyone(): any;
17
+ /**
18
+ * Get the highest role
19
+ */
20
+ get highest(): any;
21
+ /**
22
+ * Get the bot's highest role
23
+ */
24
+ get botRoleFor(): (userId: string) => any | null;
25
+ /**
26
+ * Add a role to the cache
27
+ */
28
+ _add(data: any, cache?: boolean): any;
29
+ /**
30
+ * Fetch a role from the API
31
+ */
32
+ fetch(id: string, options?: {
33
+ cache?: boolean;
34
+ force?: boolean;
35
+ }): Promise<any>;
36
+ /**
37
+ * Fetch all roles for the guild
38
+ */
39
+ fetchAll(): Promise<Collection<string, any>>;
40
+ /**
41
+ * Create a new role
42
+ */
43
+ create(options?: {
44
+ name?: string;
45
+ color?: number | string;
46
+ hoist?: boolean;
47
+ position?: number;
48
+ permissions?: string | bigint;
49
+ mentionable?: boolean;
50
+ icon?: string;
51
+ unicodeEmoji?: string;
52
+ reason?: string;
53
+ }): Promise<any>;
54
+ /**
55
+ * Delete a role
56
+ */
57
+ delete(id: string, reason?: string): Promise<void>;
58
+ /**
59
+ * Edit a role
60
+ */
61
+ edit(id: string, data: {
62
+ name?: string;
63
+ color?: number | string;
64
+ hoist?: boolean;
65
+ position?: number;
66
+ permissions?: string | bigint;
67
+ mentionable?: boolean;
68
+ icon?: string | null;
69
+ unicodeEmoji?: string | null;
70
+ reason?: string;
71
+ }): Promise<any>;
72
+ /**
73
+ * Set role positions
74
+ */
75
+ setPositions(positions: Array<{
76
+ role: string;
77
+ position: number;
78
+ }>): Promise<Collection<string, any>>;
79
+ /**
80
+ * Compare two roles by position
81
+ */
82
+ comparePositions(role1: string | any, role2: string | any): number;
83
+ }
84
+ export default RoleManager;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm9sZU1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlcnMvUm9sZU1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFFSCwrQ0FBOEM7QUFDOUMsb0RBQWlEO0FBRWpEOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMkJBQTBCO0lBQ3pELHdDQUF3QztJQUN4QixLQUFLLENBQU07SUFFM0IsWUFBWSxLQUFVLEVBQUUsUUFBd0I7UUFDOUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUN0QyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ3RELElBQVcsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNO2dCQUFF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RUQsa0JBQWUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE1hbmFnZXIgZm9yIHJvbGVzIHdpdGggY2FjaGluZyBhbmQgbGF6eSBsb2FkaW5nXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQ2FjaGVkTWFuYWdlciB9IGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vdXRpbHMvQ29sbGVjdGlvbic7XHJcblxyXG4vKipcclxuICogTWFuYWdlcyByb2xlcyBmb3IgYSBndWlsZFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJvbGVNYW5hZ2VyIGV4dGVuZHMgQ2FjaGVkTWFuYWdlcjxzdHJpbmcsIGFueT4ge1xyXG4gIC8qKiBUaGUgZ3VpbGQgdGhpcyBtYW5hZ2VyIGJlbG9uZ3MgdG8gKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZ3VpbGQ6IGFueSwgaXRlcmFibGU/OiBJdGVyYWJsZTxhbnk+KSB7XHJcbiAgICBzdXBlcihndWlsZC5jbGllbnQsIE9iamVjdCBhcyBhbnksIGl0ZXJhYmxlKTtcclxuICAgIHRoaXMuZ3VpbGQgPSBndWlsZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgQGV2ZXJ5b25lIHJvbGVcclxuICAgKi9cclxuICBnZXQgZXZlcnlvbmUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldCh0aGlzLmd1aWxkLmlkKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBoaWdoZXN0IHJvbGVcclxuICAgKi9cclxuICBnZXQgaGlnaGVzdCgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FjaGUucmVkdWNlKChwcmV2LCByb2xlKSA9PiBcclxuICAgICAgKHJvbGUucG9zaXRpb24gPiAocHJldj8ucG9zaXRpb24gPz8gLTEpKSA/IHJvbGUgOiBwcmV2XHJcbiAgICAsIG51bGwgYXMgYW55KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgYm90J3MgaGlnaGVzdCByb2xlXHJcbiAgICovXHJcbiAgZ2V0IGJvdFJvbGVGb3IoKTogKHVzZXJJZDogc3RyaW5nKSA9PiBhbnkgfCBudWxsIHtcclxuICAgIHJldHVybiAodXNlcklkOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbWVtYmVyID0gdGhpcy5ndWlsZC5tZW1iZXJzPy5jYWNoZS5nZXQodXNlcklkKTtcclxuICAgICAgaWYgKCFtZW1iZXIpIHJldHVybiBudWxsO1xyXG4gICAgICByZXR1cm4gdGhpcy5jYWNoZVxyXG4gICAgICAgIC5maWx0ZXIoKHJvbGU6IGFueSkgPT4gbWVtYmVyLnJvbGVzPy5pbmNsdWRlcyhyb2xlLmlkKSlcclxuICAgICAgICAuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IGIucG9zaXRpb24gLSBhLnBvc2l0aW9uKVxyXG4gICAgICAgIC5maXJzdCgpID8/IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGEgcm9sZSB0byB0aGUgY2FjaGVcclxuICAgKi9cclxuICBfYWRkKGRhdGE6IGFueSwgY2FjaGUgPSB0cnVlKTogYW55IHtcclxuICAgIGNvbnN0IGlkID0gZGF0YS5pZDtcclxuICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5jYWNoZS5nZXQoaWQpO1xyXG4gICAgXHJcbiAgICBpZiAoZXhpc3RpbmcpIHtcclxuICAgICAgaWYgKGNhY2hlKSBPYmplY3QuYXNzaWduKGV4aXN0aW5nLCBkYXRhKTtcclxuICAgICAgcmV0dXJuIGV4aXN0aW5nO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBjb25zdCByb2xlID0ge1xyXG4gICAgICBpZCxcclxuICAgICAgZ3VpbGRJZDogdGhpcy5ndWlsZC5pZCxcclxuICAgICAgbmFtZTogZGF0YS5uYW1lLFxyXG4gICAgICBjb2xvcjogZGF0YS5jb2xvciA/PyAwLFxyXG4gICAgICBob2lzdDogZGF0YS5ob2lzdCA/PyBmYWxzZSxcclxuICAgICAgcG9zaXRpb246IGRhdGEucG9zaXRpb24gPz8gMCxcclxuICAgICAgcGVybWlzc2lvbnM6IGRhdGEucGVybWlzc2lvbnMgPz8gJzAnLFxyXG4gICAgICBtYW5hZ2VkOiBkYXRhLm1hbmFnZWQgPz8gZmFsc2UsXHJcbiAgICAgIG1lbnRpb25hYmxlOiBkYXRhLm1lbnRpb25hYmxlID8/IGZhbHNlLFxyXG4gICAgICBpY29uOiBkYXRhLmljb24gPz8gbnVsbCxcclxuICAgICAgdW5pY29kZUVtb2ppOiBkYXRhLnVuaWNvZGVfZW1vamkgPz8gbnVsbCxcclxuICAgICAgdGFnczogZGF0YS50YWdzID8/IG51bGwsXHJcbiAgICAgIFxyXG4gICAgICBnZXQgaGV4Q29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIGAjJHt0aGlzLmNvbG9yLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2LCAnMCcpfWA7XHJcbiAgICAgIH0sXHJcbiAgICAgIFxyXG4gICAgICBnZXQgY3JlYXRlZEF0KCkge1xyXG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IEJpZ0ludCh0aGlzLmlkKSA+PiAyMm47XHJcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKE51bWJlcih0aW1lc3RhbXApICsgMTY0MDk5NTIwMDAwMCk7IC8vIEp1YmJpbyBlcG9jaFxyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQgPT09IHRoaXMuZ3VpbGRJZCA/ICdAZXZlcnlvbmUnIDogYDxAJiR7dGhpcy5pZH0+YDtcclxuICAgICAgfSxcclxuICAgICAgXHJcbiAgICAgIGNvbXBhcmVQb3NpdGlvblRvKHJvbGU6IGFueSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBvc2l0aW9uIC0gKHJvbGU/LnBvc2l0aW9uID8/IDApO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgZWRpdChkYXRhOiBhbnkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ndWlsZC5yb2xlcy5lZGl0KHRoaXMuaWQsIGRhdGEpO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgZGVsZXRlKHJlYXNvbj86IHN0cmluZykge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmd1aWxkLnJvbGVzLmRlbGV0ZSh0aGlzLmlkLCByZWFzb24pO1xyXG4gICAgICB9LFxyXG4gICAgICBcclxuICAgICAgYXN5bmMgc2V0UG9zaXRpb24ocG9zaXRpb246IG51bWJlcikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmd1aWxkLnJvbGVzLnNldFBvc2l0aW9ucyhbeyByb2xlOiB0aGlzLmlkLCBwb3NpdGlvbiB9XSk7XHJcbiAgICAgIH0sXHJcbiAgICB9O1xyXG4gICAgXHJcbiAgICBpZiAoY2FjaGUpIHRoaXMuY2FjaGUuc2V0KGlkLCByb2xlKTtcclxuICAgIHJldHVybiByb2xlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggYSByb2xlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIGZldGNoKGlkOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNhY2hlPzogYm9vbGVhbjsgZm9yY2U/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgaWYgKCFvcHRpb25zPy5mb3JjZSkge1xyXG4gICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcclxuICAgICAgaWYgKGV4aXN0aW5nKSByZXR1cm4gZXhpc3Rpbmc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIFJvbGVzIGFyZSBmZXRjaGVkIGFzIHBhcnQgb2YgZ3VpbGQsIHNvIGZldGNoIGFsbFxyXG4gICAgY29uc3Qgcm9sZXMgPSBhd2FpdCB0aGlzLmZldGNoQWxsKCk7XHJcbiAgICByZXR1cm4gcm9sZXMuZ2V0KGlkKSA/PyBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2ggYWxsIHJvbGVzIGZvciB0aGUgZ3VpbGRcclxuICAgKi9cclxuICBhc3luYyBmZXRjaEFsbCgpOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdHRVQnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzYCk7XHJcbiAgICBjb25zdCByb2xlcyA9IG5ldyBDb2xsZWN0aW9uPHN0cmluZywgYW55PigpO1xyXG4gICAgZm9yIChjb25zdCByb2xlRGF0YSBvZiBkYXRhKSB7XHJcbiAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLl9hZGQocm9sZURhdGEpO1xyXG4gICAgICByb2xlcy5zZXQocm9sZS5pZCwgcm9sZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcm9sZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgcm9sZVxyXG4gICAqL1xyXG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zPzoge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIGNvbG9yPzogbnVtYmVyIHwgc3RyaW5nO1xyXG4gICAgaG9pc3Q/OiBib29sZWFuO1xyXG4gICAgcG9zaXRpb24/OiBudW1iZXI7XHJcbiAgICBwZXJtaXNzaW9ucz86IHN0cmluZyB8IGJpZ2ludDtcclxuICAgIG1lbnRpb25hYmxlPzogYm9vbGVhbjtcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICB1bmljb2RlRW1vamk/OiBzdHJpbmc7XHJcbiAgICByZWFzb24/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChvcHRpb25zPy5uYW1lKSBib2R5Lm5hbWUgPSBvcHRpb25zLm5hbWU7XHJcbiAgICBpZiAob3B0aW9ucz8uY29sb3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIG9wdGlvbnMuY29sb3IgPT09ICdzdHJpbmcnIFxyXG4gICAgICAgID8gcGFyc2VJbnQob3B0aW9ucy5jb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNikgXHJcbiAgICAgICAgOiBvcHRpb25zLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKG9wdGlvbnM/LmhvaXN0ICE9PSB1bmRlZmluZWQpIGJvZHkuaG9pc3QgPSBvcHRpb25zLmhvaXN0O1xyXG4gICAgaWYgKG9wdGlvbnM/LnBlcm1pc3Npb25zICE9PSB1bmRlZmluZWQpIGJvZHkucGVybWlzc2lvbnMgPSBTdHJpbmcob3B0aW9ucy5wZXJtaXNzaW9ucyk7XHJcbiAgICBpZiAob3B0aW9ucz8ubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IG9wdGlvbnMubWVudGlvbmFibGU7XHJcbiAgICBpZiAob3B0aW9ucz8uaWNvbikgYm9keS5pY29uID0gb3B0aW9ucy5pY29uO1xyXG4gICAgaWYgKG9wdGlvbnM/LnVuaWNvZGVFbW9qaSkgYm9keS51bmljb2RlX2Vtb2ppID0gb3B0aW9ucy51bmljb2RlRW1vamk7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnJlcXVlc3QoJ1BPU1QnLCBgL2d1aWxkcy8ke3RoaXMuZ3VpbGQuaWR9L3JvbGVzYCwgYm9keSk7XHJcbiAgICBjb25zdCByb2xlID0gdGhpcy5fYWRkKGRhdGEpO1xyXG4gICAgXHJcbiAgICAvLyBTZXQgcG9zaXRpb24gaWYgc3BlY2lmaWVkXHJcbiAgICBpZiAob3B0aW9ucz8ucG9zaXRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBhd2FpdCB0aGlzLnNldFBvc2l0aW9ucyhbeyByb2xlOiByb2xlLmlkLCBwb3NpdGlvbjogb3B0aW9ucy5wb3NpdGlvbiB9XSk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiByb2xlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlIGEgcm9sZVxyXG4gICAqL1xyXG4gIGFzeW5jIGRlbGV0ZShpZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QucmVxdWVzdCgnREVMRVRFJywgYC9ndWlsZHMvJHt0aGlzLmd1aWxkLmlkfS9yb2xlcy8ke2lkfWAsIFxyXG4gICAgICByZWFzb24gPyB7IHJlYXNvbiB9IDogdW5kZWZpbmVkXHJcbiAgICApO1xyXG4gICAgdGhpcy5jYWNoZS5kZWxldGUoaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRWRpdCBhIHJvbGVcclxuICAgKi9cclxuICBhc3luYyBlZGl0KGlkOiBzdHJpbmcsIGRhdGE6IHtcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBjb2xvcj86IG51bWJlciB8IHN0cmluZztcclxuICAgIGhvaXN0PzogYm9vbGVhbjtcclxuICAgIHBvc2l0aW9uPzogbnVtYmVyO1xyXG4gICAgcGVybWlzc2lvbnM/OiBzdHJpbmcgfCBiaWdpbnQ7XHJcbiAgICBtZW50aW9uYWJsZT86IGJvb2xlYW47XHJcbiAgICBpY29uPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHVuaWNvZGVFbW9qaT86IHN0cmluZyB8IG51bGw7XHJcbiAgICByZWFzb24/OiBzdHJpbmc7XHJcbiAgfSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBjb25zdCBib2R5OiBhbnkgPSB7fTtcclxuICAgIGlmIChkYXRhLm5hbWUgIT09IHVuZGVmaW5lZCkgYm9keS5uYW1lID0gZGF0YS5uYW1lO1xyXG4gICAgaWYgKGRhdGEuY29sb3IgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBib2R5LmNvbG9yID0gdHlwZW9mIGRhdGEuY29sb3IgPT09ICdzdHJpbmcnIFxyXG4gICAgICAgID8gcGFyc2VJbnQoZGF0YS5jb2xvci5yZXBsYWNlKCcjJywgJycpLCAxNikgXHJcbiAgICAgICAgOiBkYXRhLmNvbG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEuaG9pc3QgIT09IHVuZGVmaW5lZCkgYm9keS5ob2lzdCA9IGRhdGEuaG9pc3Q7XHJcbiAgICBpZiAoZGF0YS5wZXJtaXNzaW9ucyAhPT0gdW5kZWZpbmVkKSBib2R5LnBlcm1pc3Npb25zID0gU3RyaW5nKGRhdGEucGVybWlzc2lvbnMpO1xyXG4gICAgaWYgKGRhdGEubWVudGlvbmFibGUgIT09IHVuZGVmaW5lZCkgYm9keS5tZW50aW9uYWJsZSA9IGRhdGEubWVudGlvbmFibGU7XHJcbiAgICBpZiAoZGF0YS5pY29uICE9PSB1bmRlZmluZWQpIGJvZHkuaWNvbiA9IGRhdGEuaWNvbjtcclxuICAgIGlmIChkYXRhLnVuaWNvZGVFbW9qaSAhPT0gdW5kZWZpbmVkKSBib2R5LnVuaWNvZGVfZW1vamkgPSBkYXRhLnVuaWNvZGVFbW9qaTtcclxuICAgIFxyXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdQQVRDSCcsIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vcm9sZXMvJHtpZH1gLCBib2R5KTtcclxuICAgIHJldHVybiB0aGlzLl9hZGQocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCByb2xlIHBvc2l0aW9uc1xyXG4gICAqL1xyXG4gIGFzeW5jIHNldFBvc2l0aW9ucyhwb3NpdGlvbnM6IEFycmF5PHsgcm9sZTogc3RyaW5nOyBwb3NpdGlvbjogbnVtYmVyIH0+KTogUHJvbWlzZTxDb2xsZWN0aW9uPHN0cmluZywgYW55Pj4ge1xyXG4gICAgY29uc3QgYm9keSA9IHBvc2l0aW9ucy5tYXAocCA9PiAoeyBpZDogcC5yb2xlLCBwb3NpdGlvbjogcC5wb3NpdGlvbiB9KSk7XHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5yZXF1ZXN0KCdQQVRDSCcsIGAvZ3VpbGRzLyR7dGhpcy5ndWlsZC5pZH0vcm9sZXNgLCBib2R5KTtcclxuICAgIFxyXG4gICAgY29uc3Qgcm9sZXMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIGFueT4oKTtcclxuICAgIGZvciAoY29uc3Qgcm9sZURhdGEgb2YgZGF0YSkge1xyXG4gICAgICBjb25zdCByb2xlID0gdGhpcy5fYWRkKHJvbGVEYXRhKTtcclxuICAgICAgcm9sZXMuc2V0KHJvbGUuaWQsIHJvbGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJvbGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29tcGFyZSB0d28gcm9sZXMgYnkgcG9zaXRpb25cclxuICAgKi9cclxuICBjb21wYXJlUG9zaXRpb25zKHJvbGUxOiBzdHJpbmcgfCBhbnksIHJvbGUyOiBzdHJpbmcgfCBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgcjEgPSB0eXBlb2Ygcm9sZTEgPT09ICdzdHJpbmcnID8gdGhpcy5jYWNoZS5nZXQocm9sZTEpIDogcm9sZTE7XHJcbiAgICBjb25zdCByMiA9IHR5cGVvZiByb2xlMiA9PT0gJ3N0cmluZycgPyB0aGlzLmNhY2hlLmdldChyb2xlMikgOiByb2xlMjtcclxuICAgIHJldHVybiAocjE/LnBvc2l0aW9uID8/IDApIC0gKHIyPy5wb3NpdGlvbiA/PyAwKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFJvbGVNYW5hZ2VyO1xyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Manager exports
3
+ */
4
+ export * from './BaseManager';
5
+ export * from './GuildMemberManager';
6
+ export * from './ChannelManager';
7
+ export * from './RoleManager';
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFuYWdlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsZ0RBQThCO0FBQzlCLHVEQUFxQztBQUNyQyxtREFBaUM7QUFDakMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIE1hbmFnZXIgZXhwb3J0c1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQmFzZU1hbmFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL0d1aWxkTWVtYmVyTWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vQ2hhbm5lbE1hbmFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL1JvbGVNYW5hZ2VyJztcclxuIl19