@jubbio/core 1.3.3 → 1.3.5

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 (131) hide show
  1. package/dist/Client.js +50 -10
  2. package/dist/rest/REST.d.ts +1 -0
  3. package/dist/rest/REST.js +1 -1
  4. package/dist/structures/Channel.d.ts +1 -1
  5. package/dist/structures/Channel.js +11 -4
  6. package/dist/structures/Guild.d.ts +1 -1
  7. package/dist/structures/Guild.js +7 -3
  8. package/dist/structures/Interaction.js +11 -3
  9. package/dist/structures/Message.d.ts +2 -0
  10. package/dist/structures/Message.js +13 -33
  11. package/package.json +4 -14
  12. package/dist/cjs/Client.d.ts +0 -157
  13. package/dist/cjs/Client.js +0 -640
  14. package/dist/cjs/builders/ActionRowBuilder.d.ts +0 -53
  15. package/dist/cjs/builders/ActionRowBuilder.js +0 -68
  16. package/dist/cjs/builders/ButtonBuilder.d.ts +0 -77
  17. package/dist/cjs/builders/ButtonBuilder.js +0 -96
  18. package/dist/cjs/builders/EmbedBuilder.d.ts +0 -157
  19. package/dist/cjs/builders/EmbedBuilder.js +0 -208
  20. package/dist/cjs/builders/ModalBuilder.d.ts +0 -122
  21. package/dist/cjs/builders/ModalBuilder.js +0 -162
  22. package/dist/cjs/builders/SelectMenuBuilder.d.ts +0 -123
  23. package/dist/cjs/builders/SelectMenuBuilder.js +0 -165
  24. package/dist/cjs/builders/SlashCommandBuilder.d.ts +0 -197
  25. package/dist/cjs/builders/SlashCommandBuilder.js +0 -324
  26. package/dist/cjs/builders/index.d.ts +0 -9
  27. package/dist/cjs/builders/index.js +0 -26
  28. package/dist/cjs/enums.d.ts +0 -191
  29. package/dist/cjs/enums.js +0 -211
  30. package/dist/cjs/index.d.ts +0 -25
  31. package/dist/cjs/index.js +0 -130
  32. package/dist/cjs/managers/BaseManager.d.ts +0 -69
  33. package/dist/cjs/managers/BaseManager.js +0 -106
  34. package/dist/cjs/managers/ChannelManager.d.ts +0 -95
  35. package/dist/cjs/managers/ChannelManager.js +0 -205
  36. package/dist/cjs/managers/GuildMemberManager.d.ts +0 -74
  37. package/dist/cjs/managers/GuildMemberManager.js +0 -157
  38. package/dist/cjs/managers/RoleManager.d.ts +0 -84
  39. package/dist/cjs/managers/RoleManager.js +0 -207
  40. package/dist/cjs/managers/index.d.ts +0 -7
  41. package/dist/cjs/managers/index.js +0 -24
  42. package/dist/cjs/rest/REST.d.ts +0 -527
  43. package/dist/cjs/rest/REST.js +0 -904
  44. package/dist/cjs/rest/index.d.ts +0 -1
  45. package/dist/cjs/rest/index.js +0 -18
  46. package/dist/cjs/sharding/ShardingManager.d.ts +0 -179
  47. package/dist/cjs/sharding/ShardingManager.js +0 -375
  48. package/dist/cjs/sharding/index.d.ts +0 -4
  49. package/dist/cjs/sharding/index.js +0 -21
  50. package/dist/cjs/structures/Channel.d.ts +0 -122
  51. package/dist/cjs/structures/Channel.js +0 -240
  52. package/dist/cjs/structures/Collection.d.ts +0 -53
  53. package/dist/cjs/structures/Collection.js +0 -115
  54. package/dist/cjs/structures/Guild.d.ts +0 -59
  55. package/dist/cjs/structures/Guild.js +0 -94
  56. package/dist/cjs/structures/GuildMember.d.ts +0 -174
  57. package/dist/cjs/structures/GuildMember.js +0 -311
  58. package/dist/cjs/structures/Interaction.d.ts +0 -245
  59. package/dist/cjs/structures/Interaction.js +0 -450
  60. package/dist/cjs/structures/Message.d.ts +0 -98
  61. package/dist/cjs/structures/Message.js +0 -195
  62. package/dist/cjs/structures/User.d.ts +0 -37
  63. package/dist/cjs/structures/User.js +0 -65
  64. package/dist/cjs/structures/index.d.ts +0 -7
  65. package/dist/cjs/structures/index.js +0 -25
  66. package/dist/cjs/structures.d.ts +0 -1
  67. package/dist/cjs/structures.js +0 -19
  68. package/dist/cjs/types.d.ts +0 -255
  69. package/dist/cjs/types.js +0 -3
  70. package/dist/cjs/utils/BitField.d.ts +0 -66
  71. package/dist/cjs/utils/BitField.js +0 -138
  72. package/dist/cjs/utils/Collection.d.ts +0 -116
  73. package/dist/cjs/utils/Collection.js +0 -265
  74. package/dist/cjs/utils/Collector.d.ts +0 -152
  75. package/dist/cjs/utils/Collector.js +0 -314
  76. package/dist/cjs/utils/DataResolver.d.ts +0 -61
  77. package/dist/cjs/utils/DataResolver.js +0 -146
  78. package/dist/cjs/utils/Formatters.d.ts +0 -145
  79. package/dist/cjs/utils/Formatters.js +0 -213
  80. package/dist/cjs/utils/IntentsBitField.d.ts +0 -85
  81. package/dist/cjs/utils/IntentsBitField.js +0 -99
  82. package/dist/cjs/utils/Partials.d.ts +0 -104
  83. package/dist/cjs/utils/Partials.js +0 -148
  84. package/dist/cjs/utils/PermissionsBitField.d.ts +0 -118
  85. package/dist/cjs/utils/PermissionsBitField.js +0 -145
  86. package/dist/cjs/utils/SnowflakeUtil.d.ts +0 -63
  87. package/dist/cjs/utils/SnowflakeUtil.js +0 -93
  88. package/dist/cjs/utils/Sweepers.d.ts +0 -119
  89. package/dist/cjs/utils/Sweepers.js +0 -249
  90. package/dist/cjs/utils/index.d.ts +0 -13
  91. package/dist/cjs/utils/index.js +0 -30
  92. package/dist/esm/Client.js +0 -634
  93. package/dist/esm/builders/ActionRowBuilder.js +0 -64
  94. package/dist/esm/builders/ButtonBuilder.js +0 -92
  95. package/dist/esm/builders/EmbedBuilder.js +0 -204
  96. package/dist/esm/builders/ModalBuilder.js +0 -157
  97. package/dist/esm/builders/SelectMenuBuilder.js +0 -161
  98. package/dist/esm/builders/SlashCommandBuilder.js +0 -311
  99. package/dist/esm/builders/index.js +0 -10
  100. package/dist/esm/enums.js +0 -208
  101. package/dist/esm/index.js +0 -34
  102. package/dist/esm/managers/BaseManager.js +0 -100
  103. package/dist/esm/managers/ChannelManager.js +0 -200
  104. package/dist/esm/managers/GuildMemberManager.js +0 -153
  105. package/dist/esm/managers/RoleManager.js +0 -203
  106. package/dist/esm/managers/index.js +0 -8
  107. package/dist/esm/rest/REST.js +0 -900
  108. package/dist/esm/rest/index.js +0 -2
  109. package/dist/esm/sharding/ShardingManager.js +0 -366
  110. package/dist/esm/sharding/index.js +0 -5
  111. package/dist/esm/structures/Channel.js +0 -232
  112. package/dist/esm/structures/Collection.js +0 -111
  113. package/dist/esm/structures/Guild.js +0 -90
  114. package/dist/esm/structures/GuildMember.js +0 -306
  115. package/dist/esm/structures/Interaction.js +0 -438
  116. package/dist/esm/structures/Message.js +0 -191
  117. package/dist/esm/structures/User.js +0 -61
  118. package/dist/esm/structures/index.js +0 -9
  119. package/dist/esm/structures.js +0 -3
  120. package/dist/esm/types.js +0 -2
  121. package/dist/esm/utils/BitField.js +0 -134
  122. package/dist/esm/utils/Collection.js +0 -261
  123. package/dist/esm/utils/Collector.js +0 -305
  124. package/dist/esm/utils/DataResolver.js +0 -142
  125. package/dist/esm/utils/Formatters.js +0 -191
  126. package/dist/esm/utils/IntentsBitField.js +0 -93
  127. package/dist/esm/utils/Partials.js +0 -137
  128. package/dist/esm/utils/PermissionsBitField.js +0 -141
  129. package/dist/esm/utils/SnowflakeUtil.js +0 -89
  130. package/dist/esm/utils/Sweepers.js +0 -245
  131. 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,7 +0,0 @@
1
- /**
2
- * Manager exports
3
- */
4
- export * from './BaseManager';
5
- export * from './GuildMemberManager';
6
- export * from './ChannelManager';
7
- export * from './RoleManager';
@@ -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=