@jubbio/core 1.3.3 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Client.js +50 -10
- package/dist/rest/REST.d.ts +1 -0
- package/dist/rest/REST.js +1 -1
- package/dist/structures/Channel.d.ts +1 -1
- package/dist/structures/Channel.js +11 -4
- package/dist/structures/Guild.d.ts +1 -1
- package/dist/structures/Guild.js +7 -3
- package/dist/structures/Message.d.ts +2 -0
- package/dist/structures/Message.js +13 -33
- package/package.json +4 -14
- package/dist/cjs/Client.d.ts +0 -157
- package/dist/cjs/Client.js +0 -640
- package/dist/cjs/builders/ActionRowBuilder.d.ts +0 -53
- package/dist/cjs/builders/ActionRowBuilder.js +0 -68
- package/dist/cjs/builders/ButtonBuilder.d.ts +0 -77
- package/dist/cjs/builders/ButtonBuilder.js +0 -96
- package/dist/cjs/builders/EmbedBuilder.d.ts +0 -157
- package/dist/cjs/builders/EmbedBuilder.js +0 -208
- package/dist/cjs/builders/ModalBuilder.d.ts +0 -122
- package/dist/cjs/builders/ModalBuilder.js +0 -162
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +0 -123
- package/dist/cjs/builders/SelectMenuBuilder.js +0 -165
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +0 -197
- package/dist/cjs/builders/SlashCommandBuilder.js +0 -324
- package/dist/cjs/builders/index.d.ts +0 -9
- package/dist/cjs/builders/index.js +0 -26
- package/dist/cjs/enums.d.ts +0 -191
- package/dist/cjs/enums.js +0 -211
- package/dist/cjs/index.d.ts +0 -25
- package/dist/cjs/index.js +0 -130
- package/dist/cjs/managers/BaseManager.d.ts +0 -69
- package/dist/cjs/managers/BaseManager.js +0 -106
- package/dist/cjs/managers/ChannelManager.d.ts +0 -95
- package/dist/cjs/managers/ChannelManager.js +0 -205
- package/dist/cjs/managers/GuildMemberManager.d.ts +0 -74
- package/dist/cjs/managers/GuildMemberManager.js +0 -157
- package/dist/cjs/managers/RoleManager.d.ts +0 -84
- package/dist/cjs/managers/RoleManager.js +0 -207
- package/dist/cjs/managers/index.d.ts +0 -7
- package/dist/cjs/managers/index.js +0 -24
- package/dist/cjs/rest/REST.d.ts +0 -527
- package/dist/cjs/rest/REST.js +0 -904
- package/dist/cjs/rest/index.d.ts +0 -1
- package/dist/cjs/rest/index.js +0 -18
- package/dist/cjs/sharding/ShardingManager.d.ts +0 -179
- package/dist/cjs/sharding/ShardingManager.js +0 -375
- package/dist/cjs/sharding/index.d.ts +0 -4
- package/dist/cjs/sharding/index.js +0 -21
- package/dist/cjs/structures/Channel.d.ts +0 -122
- package/dist/cjs/structures/Channel.js +0 -240
- package/dist/cjs/structures/Collection.d.ts +0 -53
- package/dist/cjs/structures/Collection.js +0 -115
- package/dist/cjs/structures/Guild.d.ts +0 -59
- package/dist/cjs/structures/Guild.js +0 -94
- package/dist/cjs/structures/GuildMember.d.ts +0 -174
- package/dist/cjs/structures/GuildMember.js +0 -311
- package/dist/cjs/structures/Interaction.d.ts +0 -245
- package/dist/cjs/structures/Interaction.js +0 -450
- package/dist/cjs/structures/Message.d.ts +0 -98
- package/dist/cjs/structures/Message.js +0 -195
- package/dist/cjs/structures/User.d.ts +0 -37
- package/dist/cjs/structures/User.js +0 -65
- package/dist/cjs/structures/index.d.ts +0 -7
- package/dist/cjs/structures/index.js +0 -25
- package/dist/cjs/structures.d.ts +0 -1
- package/dist/cjs/structures.js +0 -19
- package/dist/cjs/types.d.ts +0 -255
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/utils/BitField.d.ts +0 -66
- package/dist/cjs/utils/BitField.js +0 -138
- package/dist/cjs/utils/Collection.d.ts +0 -116
- package/dist/cjs/utils/Collection.js +0 -265
- package/dist/cjs/utils/Collector.d.ts +0 -152
- package/dist/cjs/utils/Collector.js +0 -314
- package/dist/cjs/utils/DataResolver.d.ts +0 -61
- package/dist/cjs/utils/DataResolver.js +0 -146
- package/dist/cjs/utils/Formatters.d.ts +0 -145
- package/dist/cjs/utils/Formatters.js +0 -213
- package/dist/cjs/utils/IntentsBitField.d.ts +0 -85
- package/dist/cjs/utils/IntentsBitField.js +0 -99
- package/dist/cjs/utils/Partials.d.ts +0 -104
- package/dist/cjs/utils/Partials.js +0 -148
- package/dist/cjs/utils/PermissionsBitField.d.ts +0 -118
- package/dist/cjs/utils/PermissionsBitField.js +0 -145
- package/dist/cjs/utils/SnowflakeUtil.d.ts +0 -63
- package/dist/cjs/utils/SnowflakeUtil.js +0 -93
- package/dist/cjs/utils/Sweepers.d.ts +0 -119
- package/dist/cjs/utils/Sweepers.js +0 -249
- package/dist/cjs/utils/index.d.ts +0 -13
- package/dist/cjs/utils/index.js +0 -30
- package/dist/esm/Client.js +0 -634
- package/dist/esm/builders/ActionRowBuilder.js +0 -64
- package/dist/esm/builders/ButtonBuilder.js +0 -92
- package/dist/esm/builders/EmbedBuilder.js +0 -204
- package/dist/esm/builders/ModalBuilder.js +0 -157
- package/dist/esm/builders/SelectMenuBuilder.js +0 -161
- package/dist/esm/builders/SlashCommandBuilder.js +0 -311
- package/dist/esm/builders/index.js +0 -10
- package/dist/esm/enums.js +0 -208
- package/dist/esm/index.js +0 -34
- package/dist/esm/managers/BaseManager.js +0 -100
- package/dist/esm/managers/ChannelManager.js +0 -200
- package/dist/esm/managers/GuildMemberManager.js +0 -153
- package/dist/esm/managers/RoleManager.js +0 -203
- package/dist/esm/managers/index.js +0 -8
- package/dist/esm/rest/REST.js +0 -900
- package/dist/esm/rest/index.js +0 -2
- package/dist/esm/sharding/ShardingManager.js +0 -366
- package/dist/esm/sharding/index.js +0 -5
- package/dist/esm/structures/Channel.js +0 -232
- package/dist/esm/structures/Collection.js +0 -111
- package/dist/esm/structures/Guild.js +0 -90
- package/dist/esm/structures/GuildMember.js +0 -306
- package/dist/esm/structures/Interaction.js +0 -438
- package/dist/esm/structures/Message.js +0 -191
- package/dist/esm/structures/User.js +0 -61
- package/dist/esm/structures/index.js +0 -9
- package/dist/esm/structures.js +0 -3
- package/dist/esm/types.js +0 -2
- package/dist/esm/utils/BitField.js +0 -134
- package/dist/esm/utils/Collection.js +0 -261
- package/dist/esm/utils/Collector.js +0 -305
- package/dist/esm/utils/DataResolver.js +0 -142
- package/dist/esm/utils/Formatters.js +0 -191
- package/dist/esm/utils/IntentsBitField.js +0 -93
- package/dist/esm/utils/Partials.js +0 -137
- package/dist/esm/utils/PermissionsBitField.js +0 -141
- package/dist/esm/utils/SnowflakeUtil.js +0 -89
- package/dist/esm/utils/Sweepers.js +0 -245
- package/dist/esm/utils/index.js +0 -14
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import { User } from './User';
|
|
2
|
-
import { InteractionCollector } from '../utils/Collector';
|
|
3
|
-
import { EmbedBuilder } from '../builders/EmbedBuilder';
|
|
4
|
-
/** Backend flat embed format (for normalization) */
|
|
5
|
-
/** Resolve EmbedBuilder instances to plain API objects */
|
|
6
|
-
function resolveEmbeds(embeds) {
|
|
7
|
-
if (!embeds)
|
|
8
|
-
return undefined;
|
|
9
|
-
return embeds.map(e => e instanceof EmbedBuilder ? e.toJSON() : e);
|
|
10
|
-
}
|
|
11
|
-
/** Normalize embed from backend to APIEmbed format */
|
|
12
|
-
function normalizeEmbed(embed) {
|
|
13
|
-
const normalized = {
|
|
14
|
-
title: embed.title,
|
|
15
|
-
description: embed.description,
|
|
16
|
-
url: embed.url,
|
|
17
|
-
timestamp: embed.timestamp,
|
|
18
|
-
color: embed.color,
|
|
19
|
-
fields: embed.fields,
|
|
20
|
-
author: embed.author,
|
|
21
|
-
footer: embed.footer,
|
|
22
|
-
};
|
|
23
|
-
// Normalize thumbnail: string → nested object
|
|
24
|
-
if (typeof embed.thumbnail === 'string') {
|
|
25
|
-
normalized.thumbnail = { url: embed.thumbnail };
|
|
26
|
-
}
|
|
27
|
-
else if (embed.thumbnail && typeof embed.thumbnail === 'object') {
|
|
28
|
-
normalized.thumbnail = embed.thumbnail;
|
|
29
|
-
}
|
|
30
|
-
// Normalize image: string → nested object
|
|
31
|
-
if (typeof embed.image === 'string') {
|
|
32
|
-
normalized.image = { url: embed.image };
|
|
33
|
-
}
|
|
34
|
-
else if (embed.image && typeof embed.image === 'object') {
|
|
35
|
-
normalized.image = embed.image;
|
|
36
|
-
}
|
|
37
|
-
return normalized;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Represents a message
|
|
41
|
-
*/
|
|
42
|
-
export class Message {
|
|
43
|
-
/** Reference to the client */
|
|
44
|
-
client;
|
|
45
|
-
/** Message ID */
|
|
46
|
-
id;
|
|
47
|
-
/** Channel ID */
|
|
48
|
-
channelId;
|
|
49
|
-
/** Guild ID (if in a guild) */
|
|
50
|
-
guildId;
|
|
51
|
-
/** Message author */
|
|
52
|
-
author;
|
|
53
|
-
/** Message content */
|
|
54
|
-
content;
|
|
55
|
-
/** Message timestamp */
|
|
56
|
-
createdTimestamp;
|
|
57
|
-
/** Edit timestamp */
|
|
58
|
-
editedTimestamp;
|
|
59
|
-
/** Attachments */
|
|
60
|
-
attachments;
|
|
61
|
-
/** Embeds */
|
|
62
|
-
embeds;
|
|
63
|
-
/** Components (buttons, select menus, etc.) */
|
|
64
|
-
components;
|
|
65
|
-
/** Mentions in the message */
|
|
66
|
-
mentions;
|
|
67
|
-
/** User ID (from backend) */
|
|
68
|
-
user_id;
|
|
69
|
-
/** Guild member (if in a guild) */
|
|
70
|
-
member;
|
|
71
|
-
constructor(client, data) {
|
|
72
|
-
this.client = client;
|
|
73
|
-
this.id = data.id;
|
|
74
|
-
this.channelId = data.channel_id;
|
|
75
|
-
this.guildId = data.guild_id;
|
|
76
|
-
this.author = new User(data.author);
|
|
77
|
-
this.content = data.content ?? '';
|
|
78
|
-
// Handle different timestamp formats from backend
|
|
79
|
-
const timestamp = data.timestamp || data.created_at;
|
|
80
|
-
this.createdTimestamp = timestamp ? new Date(timestamp).getTime() : Date.now();
|
|
81
|
-
const editedTimestamp = data.edited_timestamp || data.updated_at;
|
|
82
|
-
this.editedTimestamp = editedTimestamp ? new Date(editedTimestamp).getTime() : undefined;
|
|
83
|
-
this.attachments = data.attachments || [];
|
|
84
|
-
// Normalize embeds from backend (flat format → nested format)
|
|
85
|
-
this.embeds = data.embeds ? data.embeds.map(normalizeEmbed) : [];
|
|
86
|
-
// Components (ActionRows with buttons, select menus, etc.)
|
|
87
|
-
this.components = data.components || [];
|
|
88
|
-
this.mentions = data.mentions || {};
|
|
89
|
-
this.user_id = data.user_id;
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Get the creation date
|
|
93
|
-
*/
|
|
94
|
-
get createdAt() {
|
|
95
|
-
return new Date(this.createdTimestamp);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Get the edit date
|
|
99
|
-
*/
|
|
100
|
-
get editedAt() {
|
|
101
|
-
return this.editedTimestamp ? new Date(this.editedTimestamp) : null;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Reply to this message
|
|
105
|
-
*/
|
|
106
|
-
async reply(options) {
|
|
107
|
-
const content = typeof options === 'string' ? options : options.content;
|
|
108
|
-
const embeds = typeof options === 'string' ? undefined : resolveEmbeds(options.embeds);
|
|
109
|
-
const components = typeof options === 'string' ? undefined : options.components;
|
|
110
|
-
const data = await this.client.rest.createMessage(this.guildId || '', this.channelId, {
|
|
111
|
-
content,
|
|
112
|
-
embeds,
|
|
113
|
-
components,
|
|
114
|
-
message_reference: { message_id: this.id }
|
|
115
|
-
});
|
|
116
|
-
return new Message(this.client, data);
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Edit this message (only if author is the bot)
|
|
120
|
-
*/
|
|
121
|
-
async edit(options) {
|
|
122
|
-
const content = typeof options === 'string' ? options : options.content;
|
|
123
|
-
const embeds = typeof options === 'string' ? undefined : resolveEmbeds(options.embeds);
|
|
124
|
-
const components = typeof options === 'string' ? undefined : options.components;
|
|
125
|
-
const data = await this.client.rest.editMessage(this.guildId || '', this.channelId, this.id, {
|
|
126
|
-
content,
|
|
127
|
-
embeds,
|
|
128
|
-
components,
|
|
129
|
-
});
|
|
130
|
-
return new Message(this.client, data);
|
|
131
|
-
}
|
|
132
|
-
/**
|
|
133
|
-
* Delete this message
|
|
134
|
-
*/
|
|
135
|
-
async delete() {
|
|
136
|
-
await this.client.rest.deleteMessage(this.guildId || '', this.channelId, this.id);
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* React to this message
|
|
140
|
-
*/
|
|
141
|
-
async react(emoji) {
|
|
142
|
-
await this.client.rest.addReaction(this.guildId || '', this.channelId, this.id, emoji);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Pin this message
|
|
146
|
-
*/
|
|
147
|
-
async pin() {
|
|
148
|
-
await this.client.rest.pinMessage(this.guildId || '', this.channelId, this.id);
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
* Unpin this message
|
|
152
|
-
*/
|
|
153
|
-
async unpin() {
|
|
154
|
-
await this.client.rest.unpinMessage(this.guildId || '', this.channelId, this.id);
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Create a component interaction collector on this message
|
|
158
|
-
*/
|
|
159
|
-
createMessageComponentCollector(options) {
|
|
160
|
-
return new InteractionCollector(this.client, {
|
|
161
|
-
...options,
|
|
162
|
-
messageId: this.id,
|
|
163
|
-
channelId: this.channelId,
|
|
164
|
-
guildId: this.guildId,
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Await component interactions on this message
|
|
169
|
-
*/
|
|
170
|
-
awaitMessageComponent(options) {
|
|
171
|
-
return new Promise((resolve, reject) => {
|
|
172
|
-
const collector = this.createMessageComponentCollector({ ...options, max: 1 });
|
|
173
|
-
collector.once('end', (collected, reason) => {
|
|
174
|
-
const first = collected.first();
|
|
175
|
-
if (first) {
|
|
176
|
-
resolve(first);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
reject(new Error(reason || 'No interaction received'));
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Convert to string
|
|
186
|
-
*/
|
|
187
|
-
toString() {
|
|
188
|
-
return this.content;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL01lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUs5QixPQUFPLEVBQUUsb0JBQW9CLEVBQStCLE1BQU0sb0JBQW9CLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXhELG9EQUFvRDtBQUNwRCwwREFBMEQ7QUFDMUQsU0FBUyxhQUFhLENBQUMsTUFBb0M7SUFDekQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM5QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxzREFBc0Q7QUFDdEQsU0FBUyxjQUFjLENBQUMsS0FBNEY7SUFDbEgsTUFBTSxVQUFVLEdBQWE7UUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7UUFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDcEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUM7SUFFRiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEMsVUFBVSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdB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RSxDQUFDLENBQUM7WUFFL0UsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLHlCQUF5QixDQUFDLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSU1lc3NhZ2UsIEFQSUVtYmVkLCBBUElBdHRhY2htZW50IH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi9Vc2VyJztcclxuaW1wb3J0IHsgR3VpbGRNZW1iZXIgfSBmcm9tICcuL0d1aWxkTWVtYmVyJztcclxuaW1wb3J0IHR5cGUgeyBDbGllbnQgfSBmcm9tICcuLi9DbGllbnQnO1xyXG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2VDcmVhdGVPcHRpb25zIH0gZnJvbSAnLi9DaGFubmVsJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4vQ29sbGVjdGlvbic7XHJcbmltcG9ydCB7IEludGVyYWN0aW9uQ29sbGVjdG9yLCBJbnRlcmFjdGlvbkNvbGxlY3Rvck9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9Db2xsZWN0b3InO1xyXG5pbXBvcnQgeyBFbWJlZEJ1aWxkZXIgfSBmcm9tICcuLi9idWlsZGVycy9FbWJlZEJ1aWxkZXInO1xyXG5cclxuLyoqIEJhY2tlbmQgZmxhdCBlbWJlZCBmb3JtYXQgKGZvciBub3JtYWxpemF0aW9uKSAqL1xyXG4vKiogUmVzb2x2ZSBFbWJlZEJ1aWxkZXIgaW5zdGFuY2VzIHRvIHBsYWluIEFQSSBvYmplY3RzICovXHJcbmZ1bmN0aW9uIHJlc29sdmVFbWJlZHMoZW1iZWRzPzogKEFQSUVtYmVkIHwgRW1iZWRCdWlsZGVyKVtdKTogQVBJRW1iZWRbXSB8IHVuZGVmaW5lZCB7XHJcbiAgaWYgKCFlbWJlZHMpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgcmV0dXJuIGVtYmVkcy5tYXAoZSA9PiBlIGluc3RhbmNlb2YgRW1iZWRCdWlsZGVyID8gZS50b0pTT04oKSA6IGUpO1xyXG59XHJcblxyXG4vKiogTm9ybWFsaXplIGVtYmVkIGZyb20gYmFja2VuZCB0byBBUElFbWJlZCBmb3JtYXQgKi9cclxuZnVuY3Rpb24gbm9ybWFsaXplRW1iZWQoZW1iZWQ6IEFQSUVtYmVkICYgeyBpbWFnZT86IHsgdXJsOiBzdHJpbmcgfSB8IHN0cmluZzsgdGh1bWJuYWlsPzogeyB1cmw6IHN0cmluZyB9IHwgc3RyaW5nIH0pOiBBUElFbWJlZCB7XHJcbiAgY29uc3Qgbm9ybWFsaXplZDogQVBJRW1iZWQgPSB7XHJcbiAgICB0aXRsZTogZW1iZWQudGl0bGUsXHJcbiAgICBkZXNjcmlwdGlvbjogZW1iZWQuZGVzY3JpcHRpb24sXHJcbiAgICB1cmw6IGVtYmVkLnVybCxcclxuICAgIHRpbWVzdGFtcDogZW1iZWQudGltZXN0YW1wLFxyXG4gICAgY29sb3I6IGVtYmVkLmNvbG9yLFxyXG4gICAgZmllbGRzOiBlbWJlZC5maWVsZHMsXHJcbiAgICBhdXRob3I6IGVtYmVkLmF1dGhvcixcclxuICAgIGZvb3RlcjogZW1iZWQuZm9vdGVyLFxyXG4gIH07XHJcblxyXG4gIC8vIE5vcm1hbGl6ZSB0aHVtYm5haWw6IHN0cmluZyDihpIgbmVzdGVkIG9iamVjdFxyXG4gIGlmICh0eXBlb2YgZW1iZWQudGh1bWJuYWlsID09PSAnc3RyaW5nJykge1xyXG4gICAgbm9ybWFsaXplZC50aHVtYm5haWwgPSB7IHVybDogZW1iZWQudGh1bWJuYWlsIH07XHJcbiAgfSBlbHNlIGlmIChlbWJlZC50aHVtYm5haWwgJiYgdHlwZW9mIGVtYmVkLnRodW1ibmFpbCA9PT0gJ29iamVjdCcpIHtcclxuICAgIG5vcm1hbGl6ZWQudGh1bWJuYWlsID0gZW1iZWQudGh1bWJuYWlsO1xyXG4gIH1cclxuXHJcbiAgLy8gTm9ybWFsaXplIGltYWdlOiBzdHJpbmcg4oaSIG5lc3RlZCBvYmplY3RcclxuICBpZiAodHlwZW9mIGVtYmVkLmltYWdlID09PSAnc3RyaW5nJykge1xyXG4gICAgbm9ybWFsaXplZC5pbWFnZSA9IHsgdXJsOiBlbWJlZC5pbWFnZSB9O1xyXG4gIH0gZWxzZSBpZiAoZW1iZWQuaW1hZ2UgJiYgdHlwZW9mIGVtYmVkLmltYWdlID09PSAnb2JqZWN0Jykge1xyXG4gICAgbm9ybWFsaXplZC5pbWFnZSA9IGVtYmVkLmltYWdlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNZW50aW9uIGRhdGEgZnJvbSBiYWNrZW5kXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VNZW50aW9ucyB7XHJcbiAgdXNlcnM/OiBBcnJheTx7IGlkOiBudW1iZXIgfCBzdHJpbmc7IHVzZXJuYW1lOiBzdHJpbmcgfT47XHJcbiAgcm9sZXM/OiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfT47XHJcbiAgZXZlcnlvbmU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIG1lc3NhZ2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlIHtcclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBjbGllbnQgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY2xpZW50OiBDbGllbnQ7XHJcbiAgXHJcbiAgLyoqIE1lc3NhZ2UgSUQgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcclxuICBcclxuICAvKiogQ2hhbm5lbCBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcclxuICBcclxuICAvKiogR3VpbGQgSUQgKGlmIGluIGEgZ3VpbGQpICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGd1aWxkSWQ/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIE1lc3NhZ2UgYXV0aG9yICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcjogVXNlcjtcclxuICBcclxuICAvKiogTWVzc2FnZSBjb250ZW50ICovXHJcbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcclxuICBcclxuICAvKiogTWVzc2FnZSB0aW1lc3RhbXAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZFRpbWVzdGFtcDogbnVtYmVyO1xyXG4gIFxyXG4gIC8qKiBFZGl0IHRpbWVzdGFtcCAqL1xyXG4gIHB1YmxpYyBlZGl0ZWRUaW1lc3RhbXA/OiBudW1iZXI7XHJcbiAgXHJcbiAgLyoqIEF0dGFjaG1lbnRzICovXHJcbiAgcHVibGljIGF0dGFjaG1lbnRzOiBBUElBdHRhY2htZW50W107XHJcbiAgXHJcbiAgLyoqIEVtYmVkcyAqL1xyXG4gIHB1YmxpYyBlbWJlZHM6IEFQSUVtYmVkW107XHJcblxyXG4gIC8qKiBDb21wb25lbnRzIChidXR0b25zLCBzZWxlY3QgbWVudXMsIGV0Yy4pICovXHJcbiAgcHVibGljIGNvbXBvbmVudHM6IGFueVtdO1xyXG5cclxuICAvKiogTWVudGlvbnMgaW4gdGhlIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVudGlvbnM6IE1lc3NhZ2VNZW50aW9ucztcclxuXHJcbiAgLyoqIFVzZXIgSUQgKGZyb20gYmFja2VuZCkgKi9cclxuICBwdWJsaWMgdXNlcl9pZD86IG51bWJlcjtcclxuXHJcbiAgLyoqIEd1aWxkIG1lbWJlciAoaWYgaW4gYSBndWlsZCkgKi9cclxuICBwdWJsaWMgbWVtYmVyPzogR3VpbGRNZW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogQ2xpZW50LCBkYXRhOiBBUElNZXNzYWdlKSB7XHJcbiAgICB0aGlzLmNsaWVudCA9IGNsaWVudDtcclxuICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xyXG4gICAgdGhpcy5jaGFubmVsSWQgPSBkYXRhLmNoYW5uZWxfaWQ7XHJcbiAgICB0aGlzLmd1aWxkSWQgPSBkYXRhLmd1aWxkX2lkO1xyXG4gICAgdGhpcy5hdXRob3IgPSBuZXcgVXNlcihkYXRhLmF1dGhvcik7XHJcbiAgICB0aGlzLmNvbnRlbnQgPSBkYXRhLmNvbnRlbnQgPz8gJyc7XHJcbiAgICBcclxuICAgIC8vIEhhbmRsZSBkaWZmZXJlbnQgdGltZXN0YW1wIGZvcm1hdHMgZnJvbSBiYWNrZW5kXHJcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBkYXRhLnRpbWVzdGFtcCB8fCAoZGF0YSBhcyBhbnkpLmNyZWF0ZWRfYXQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRUaW1lc3RhbXAgPSB0aW1lc3RhbXAgPyBuZXcgRGF0ZSh0aW1lc3RhbXApLmdldFRpbWUoKSA6IERhdGUubm93KCk7XHJcbiAgICBcclxuICAgIGNvbnN0IGVkaXRlZFRpbWVzdGFtcCA9IGRhdGEuZWRpdGVkX3RpbWVzdGFtcCB8fCAoZGF0YSBhcyBhbnkpLnVwZGF0ZWRfYXQ7XHJcbiAgICB0aGlzLmVkaXRlZFRpbWVzdGFtcCA9IGVkaXRlZFRpbWVzdGFtcCA/IG5ldyBEYXRlKGVkaXRlZFRpbWVzdGFtcCkuZ2V0VGltZSgpIDogdW5kZWZpbmVkO1xyXG4gICAgXHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gZGF0YS5hdHRhY2htZW50cyB8fCBbXTtcclxuICAgIFxyXG4gICAgLy8gTm9ybWFsaXplIGVtYmVkcyBmcm9tIGJhY2tlbmQgKGZsYXQgZm9ybWF0IOKGkiBuZXN0ZWQgZm9ybWF0KVxyXG4gICAgdGhpcy5lbWJlZHMgPSBkYXRhLmVtYmVkcyA/IGRhdGEuZW1iZWRzLm1hcChub3JtYWxpemVFbWJlZCkgOiBbXTtcclxuICAgIFxyXG4gICAgLy8gQ29tcG9uZW50cyAoQWN0aW9uUm93cyB3aXRoIGJ1dHRvbnMsIHNlbGVjdCBtZW51cywgZXRjLilcclxuICAgIHRoaXMuY29tcG9uZW50cyA9IChkYXRhIGFzIGFueSkuY29tcG9uZW50cyB8fCBbXTtcclxuICAgIFxyXG4gICAgdGhpcy5tZW50aW9ucyA9IChkYXRhIGFzIGFueSkubWVudGlvbnMgfHwge307XHJcbiAgICB0aGlzLnVzZXJfaWQgPSAoZGF0YSBhcyBhbnkpLnVzZXJfaWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGNyZWF0aW9uIGRhdGVcclxuICAgKi9cclxuICBnZXQgY3JlYXRlZEF0KCk6IERhdGUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY3JlYXRlZFRpbWVzdGFtcCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGVkaXQgZGF0ZVxyXG4gICAqL1xyXG4gIGdldCBlZGl0ZWRBdCgpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5lZGl0ZWRUaW1lc3RhbXAgPyBuZXcgRGF0ZSh0aGlzLmVkaXRlZFRpbWVzdGFtcCkgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVwbHkgdG8gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXN5bmMgcmVwbHkob3B0aW9uczogc3RyaW5nIHwgTWVzc2FnZUNyZWF0ZU9wdGlvbnMpOiBQcm9taXNlPE1lc3NhZ2U+IHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyBvcHRpb25zIDogb3B0aW9ucy5jb250ZW50O1xyXG4gICAgY29uc3QgZW1iZWRzID0gdHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnID8gdW5kZWZpbmVkIDogcmVzb2x2ZUVtYmVkcyhvcHRpb25zLmVtYmVkcyk7XHJcbiAgICBjb25zdCBjb21wb25lbnRzID0gdHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5jb21wb25lbnRzO1xyXG4gICAgXHJcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5jbGllbnQucmVzdC5jcmVhdGVNZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHtcclxuICAgICAgY29udGVudCxcclxuICAgICAgZW1iZWRzLFxyXG4gICAgICBjb21wb25lbnRzLFxyXG4gICAgICBtZXNzYWdlX3JlZmVyZW5jZTogeyBtZXNzYWdlX2lkOiB0aGlzLmlkIH1cclxuICAgIH0pO1xyXG4gICAgXHJcbiAgICByZXR1cm4gbmV3IE1lc3NhZ2UodGhpcy5jbGllbnQsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRWRpdCB0aGlzIG1lc3NhZ2UgKG9ubHkgaWYgYXV0aG9yIGlzIHRoZSBib3QpXHJcbiAgICovXHJcbiAgYXN5bmMgZWRpdChvcHRpb25zOiBzdHJpbmcgfCBNZXNzYWdlQ3JlYXRlT3B0aW9ucyk6IFByb21pc2U8TWVzc2FnZT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IG9wdGlvbnMgOiBvcHRpb25zLmNvbnRlbnQ7XHJcbiAgICBjb25zdCBlbWJlZHMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiByZXNvbHZlRW1iZWRzKG9wdGlvbnMuZW1iZWRzKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiBvcHRpb25zLmNvbXBvbmVudHM7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmVkaXRNZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQsIHtcclxuICAgICAgY29udGVudCxcclxuICAgICAgZW1iZWRzLFxyXG4gICAgICBjb21wb25lbnRzLFxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHJldHVybiBuZXcgTWVzc2FnZSh0aGlzLmNsaWVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXN5bmMgZGVsZXRlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucmVzdC5kZWxldGVNZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVhY3QgdG8gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXN5bmMgcmVhY3QoZW1vamk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucmVzdC5hZGRSZWFjdGlvbih0aGlzLmd1aWxkSWQgfHwgJycsIHRoaXMuY2hhbm5lbElkLCB0aGlzLmlkLCBlbW9qaSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQaW4gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXN5bmMgcGluKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5jbGllbnQucmVzdC5waW5NZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5waW4gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXN5bmMgdW5waW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnVucGluTWVzc2FnZSh0aGlzLmd1aWxkSWQgfHwgJycsIHRoaXMuY2hhbm5lbElkLCB0aGlzLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIGNvbXBvbmVudCBpbnRlcmFjdGlvbiBjb2xsZWN0b3Igb24gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgY3JlYXRlTWVzc2FnZUNvbXBvbmVudENvbGxlY3RvcihvcHRpb25zPzogT21pdDxJbnRlcmFjdGlvbkNvbGxlY3Rvck9wdGlvbnMsICdtZXNzYWdlSWQnPik6IEludGVyYWN0aW9uQ29sbGVjdG9yIHtcclxuICAgIHJldHVybiBuZXcgSW50ZXJhY3Rpb25Db2xsZWN0b3IodGhpcy5jbGllbnQsIHtcclxuICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgbWVzc2FnZUlkOiB0aGlzLmlkLFxyXG4gICAgICBjaGFubmVsSWQ6IHRoaXMuY2hhbm5lbElkLFxyXG4gICAgICBndWlsZElkOiB0aGlzLmd1aWxkSWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF3YWl0IGNvbXBvbmVudCBpbnRlcmFjdGlvbnMgb24gdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgYXdhaXRNZXNzYWdlQ29tcG9uZW50KG9wdGlvbnM/OiBPbWl0PEludGVyYWN0aW9uQ29sbGVjdG9yT3B0aW9ucywgJ21lc3NhZ2VJZCcgfCAnbWF4Jz4pOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgY29sbGVjdG9yID0gdGhpcy5jcmVhdGVNZXNzYWdlQ29tcG9uZW50Q29sbGVjdG9yKHsgLi4ub3B0aW9ucywgbWF4OiAxIH0pO1xyXG4gICAgICBcclxuICAgICAgY29sbGVjdG9yLm9uY2UoJ2VuZCcsIChjb2xsZWN0ZWQsIHJlYXNvbikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZpcnN0ID0gY29sbGVjdGVkLmZpcnN0KCk7XHJcbiAgICAgICAgaWYgKGZpcnN0KSB7XHJcbiAgICAgICAgICByZXNvbHZlKGZpcnN0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcihyZWFzb24gfHwgJ05vIGludGVyYWN0aW9uIHJlY2VpdmVkJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnZlcnQgdG8gc3RyaW5nXHJcbiAgICovXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbnRlbnQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Represents a user
|
|
3
|
-
*/
|
|
4
|
-
export class User {
|
|
5
|
-
/** User ID */
|
|
6
|
-
id;
|
|
7
|
-
/** Username */
|
|
8
|
-
username;
|
|
9
|
-
/** Display name */
|
|
10
|
-
displayName;
|
|
11
|
-
/** Avatar URL */
|
|
12
|
-
avatarURL;
|
|
13
|
-
/** Whether this is a bot */
|
|
14
|
-
bot;
|
|
15
|
-
constructor(data) {
|
|
16
|
-
// Handle both string and number IDs (snowflake precision issue)
|
|
17
|
-
this.id = String(data.id);
|
|
18
|
-
this.username = data.username || `User_${this.id}`;
|
|
19
|
-
this.displayName = data.display_name;
|
|
20
|
-
this.avatarURL = data.avatar_url;
|
|
21
|
-
this.bot = data.bot ?? false;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get the user's tag (username)
|
|
25
|
-
*/
|
|
26
|
-
get tag() {
|
|
27
|
-
return this.username;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get the default avatar URL
|
|
31
|
-
*/
|
|
32
|
-
get defaultAvatarURL() {
|
|
33
|
-
return `https://cdn.jubbio.com/embed/avatars/${parseInt(this.id) % 5}.png`;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Get the display avatar URL
|
|
37
|
-
*/
|
|
38
|
-
displayAvatarURL() {
|
|
39
|
-
return this.avatarURL || this.defaultAvatarURL;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Convert to string (mention format)
|
|
43
|
-
*/
|
|
44
|
-
toString() {
|
|
45
|
-
return `<@${this.id}>`;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Update user data
|
|
49
|
-
*/
|
|
50
|
-
_patch(data) {
|
|
51
|
-
if (data.username !== undefined)
|
|
52
|
-
this.username = data.username;
|
|
53
|
-
if (data.display_name !== undefined)
|
|
54
|
-
this.displayName = data.display_name;
|
|
55
|
-
if (data.avatar_url !== undefined)
|
|
56
|
-
this.avatarURL = data.avatar_url;
|
|
57
|
-
if (data.bot !== undefined)
|
|
58
|
-
this.bot = data.bot;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL1VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sSUFBSTtJQUNmLGNBQWM7SUFDRSxFQUFFLENBQVM7SUFFM0IsZUFBZTtJQUNSLFFBQVEsQ0FBUztJQUV4QixtQkFBbUI7SUFDWixXQUFXLENBQVU7SUFFNUIsaUJBQWlCO0lBQ1YsU0FBUyxDQUFVO0lBRTFCLDRCQUE0QjtJQUNyQixHQUFHLENBQVU7SUFFcEIsWUFBWSxJQUFhO1FBQ3ZCLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyx3Q0FBd0MsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUM3RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUFzQjtRQUMzQixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUMxRSxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUztZQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElVc2VyIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSB1c2VyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVXNlciB7XHJcbiAgLyoqIFVzZXIgSUQgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcclxuICBcclxuICAvKiogVXNlcm5hbWUgKi9cclxuICBwdWJsaWMgdXNlcm5hbWU6IHN0cmluZztcclxuICBcclxuICAvKiogRGlzcGxheSBuYW1lICovXHJcbiAgcHVibGljIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBBdmF0YXIgVVJMICovXHJcbiAgcHVibGljIGF2YXRhclVSTD86IHN0cmluZztcclxuICBcclxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgYm90ICovXHJcbiAgcHVibGljIGJvdDogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogQVBJVXNlcikge1xyXG4gICAgLy8gSGFuZGxlIGJvdGggc3RyaW5nIGFuZCBudW1iZXIgSURzIChzbm93Zmxha2UgcHJlY2lzaW9uIGlzc3VlKVxyXG4gICAgdGhpcy5pZCA9IFN0cmluZyhkYXRhLmlkKTtcclxuICAgIHRoaXMudXNlcm5hbWUgPSBkYXRhLnVzZXJuYW1lIHx8IGBVc2VyXyR7dGhpcy5pZH1gO1xyXG4gICAgdGhpcy5kaXNwbGF5TmFtZSA9IGRhdGEuZGlzcGxheV9uYW1lO1xyXG4gICAgdGhpcy5hdmF0YXJVUkwgPSBkYXRhLmF2YXRhcl91cmw7XHJcbiAgICB0aGlzLmJvdCA9IGRhdGEuYm90ID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSB1c2VyJ3MgdGFnICh1c2VybmFtZSlcclxuICAgKi9cclxuICBnZXQgdGFnKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VybmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZGVmYXVsdCBhdmF0YXIgVVJMXHJcbiAgICovXHJcbiAgZ2V0IGRlZmF1bHRBdmF0YXJVUkwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9jZG4uanViYmlvLmNvbS9lbWJlZC9hdmF0YXJzLyR7cGFyc2VJbnQodGhpcy5pZCkgJSA1fS5wbmdgO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBkaXNwbGF5IGF2YXRhciBVUkxcclxuICAgKi9cclxuICBkaXNwbGF5QXZhdGFyVVJMKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5hdmF0YXJVUkwgfHwgdGhpcy5kZWZhdWx0QXZhdGFyVVJMO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0byBzdHJpbmcgKG1lbnRpb24gZm9ybWF0KVxyXG4gICAqL1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYDxAJHt0aGlzLmlkfT5gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHVzZXIgZGF0YVxyXG4gICAqL1xyXG4gIF9wYXRjaChkYXRhOiBQYXJ0aWFsPEFQSVVzZXI+KTogdm9pZCB7XHJcbiAgICBpZiAoZGF0YS51c2VybmFtZSAhPT0gdW5kZWZpbmVkKSB0aGlzLnVzZXJuYW1lID0gZGF0YS51c2VybmFtZTtcclxuICAgIGlmIChkYXRhLmRpc3BsYXlfbmFtZSAhPT0gdW5kZWZpbmVkKSB0aGlzLmRpc3BsYXlOYW1lID0gZGF0YS5kaXNwbGF5X25hbWU7XHJcbiAgICBpZiAoZGF0YS5hdmF0YXJfdXJsICE9PSB1bmRlZmluZWQpIHRoaXMuYXZhdGFyVVJMID0gZGF0YS5hdmF0YXJfdXJsO1xyXG4gICAgaWYgKGRhdGEuYm90ICE9PSB1bmRlZmluZWQpIHRoaXMuYm90ID0gZGF0YS5ib3Q7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './User';
|
|
2
|
-
export * from './Guild';
|
|
3
|
-
export * from './Channel';
|
|
4
|
-
export * from './Message';
|
|
5
|
-
export * from './Interaction';
|
|
6
|
-
export * from './GuildMember';
|
|
7
|
-
export * from './Collection';
|
|
8
|
-
// Collector is exported from utils
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUM3QixtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1VzZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL0d1aWxkJztcclxuZXhwb3J0ICogZnJvbSAnLi9DaGFubmVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9NZXNzYWdlJztcclxuZXhwb3J0ICogZnJvbSAnLi9JbnRlcmFjdGlvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vR3VpbGRNZW1iZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL0NvbGxlY3Rpb24nO1xyXG4vLyBDb2xsZWN0b3IgaXMgZXhwb3J0ZWQgZnJvbSB1dGlsc1xyXG4iXX0=
|
package/dist/esm/structures.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
// Re-export all structures
|
|
2
|
-
export * from './structures/index';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGFsbCBzdHJ1Y3R1cmVzXHJcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlcy9pbmRleCc7XHJcbiJdfQ==
|
package/dist/esm/types.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhdGV3YXlJbnRlbnRCaXRzLCBJbnRlcmFjdGlvblR5cGUsIEFwcGxpY2F0aW9uQ29tbWFuZFR5cGUsIENoYW5uZWxUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XHJcblxyXG4vKipcclxuICogQ2xpZW50IG9wdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50T3B0aW9ucyB7XHJcbiAgLyoqIEdhdGV3YXkgaW50ZW50cyAqL1xyXG4gIGludGVudHM6IEdhdGV3YXlJbnRlbnRCaXRzW10gfCBudW1iZXI7XHJcbiAgLyoqIFNoYXJkIGNvbmZpZ3VyYXRpb24gW3NoYXJkX2lkLCBudW1fc2hhcmRzXSAqL1xyXG4gIHNoYXJkcz86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgLyoqIEdhdGV3YXkgVVJMIG92ZXJyaWRlICovXHJcbiAgZ2F0ZXdheVVybD86IHN0cmluZztcclxuICAvKiogQVBJIFVSTCBvdmVycmlkZSAqL1xyXG4gIGFwaVVybD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFVzZXIgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVVzZXIge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5X25hbWU/OiBzdHJpbmc7XHJcbiAgYXZhdGFyX3VybD86IHN0cmluZztcclxuICBib3Q/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogR3VpbGQgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUd1aWxkIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIG93bmVyX2lkOiBzdHJpbmc7XHJcbiAgdW5hdmFpbGFibGU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hhbm5lbCBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQ2hhbm5lbCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBDaGFubmVsVHlwZTtcclxuICBndWlsZF9pZD86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHRvcGljPzogc3RyaW5nO1xyXG4gIHBvc2l0aW9uPzogbnVtYmVyO1xyXG4gIHBhcmVudF9pZD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIE1lc3NhZ2Ugc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSU1lc3NhZ2Uge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2hhbm5lbF9pZDogc3RyaW5nO1xyXG4gIGd1aWxkX2lkPzogc3RyaW5nO1xyXG4gIGF1dGhvcjogQVBJVXNlcjtcclxuICB1c2VyX2lkPzogbnVtYmVyOyAvLyBCYWNrZW5kIHNlbmRzIHVzZXJfaWQgc2VwYXJhdGVseSBmcm9tIGF1dGhvclxyXG4gIGNvbnRlbnQ6IHN0cmluZyB8IG51bGw7XHJcbiAgdGltZXN0YW1wOiBzdHJpbmc7XHJcbiAgZWRpdGVkX3RpbWVzdGFtcD86IHN0cmluZztcclxuICBhdHRhY2htZW50cz86IEFQSUF0dGFjaG1lbnRbXTtcclxuICBlbWJlZHM/OiBBUElFbWJlZFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQXR0YWNobWVudCBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQXR0YWNobWVudCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBmaWxlbmFtZTogc3RyaW5nO1xyXG4gIHNpemU6IG51bWJlcjtcclxuICB1cmw6IHN0cmluZztcclxuICBwcm94eV91cmw/OiBzdHJpbmc7XHJcbiAgY29udGVudF90eXBlPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogRW1iZWQgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUVtYmVkIHtcclxuICB0aXRsZT86IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgdGltZXN0YW1wPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogbnVtYmVyO1xyXG4gIGZvb3Rlcj86IHsgdGV4dDogc3RyaW5nOyBpY29uX3VybD86IHN0cmluZyB9O1xyXG4gIGltYWdlPzogeyB1cmw6IHN0cmluZyB9O1xyXG4gIHRodW1ibmFpbD86IHsgdXJsOiBzdHJpbmcgfTtcclxuICBhdXRob3I/OiB7IG5hbWU6IHN0cmluZzsgdXJsPzogc3RyaW5nOyBpY29uX3VybD86IHN0cmluZyB9O1xyXG4gIGZpZWxkcz86IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBpbmxpbmU/OiBib29sZWFuIH1bXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyYWN0aW9uIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElJbnRlcmFjdGlvbiB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBhcHBsaWNhdGlvbl9pZDogc3RyaW5nO1xyXG4gIHR5cGU6IEludGVyYWN0aW9uVHlwZTtcclxuICBkYXRhPzogQVBJSW50ZXJhY3Rpb25EYXRhO1xyXG4gIGd1aWxkX2lkPzogc3RyaW5nO1xyXG4gIGNoYW5uZWxfaWQ/OiBzdHJpbmc7XHJcbiAgbWVtYmVyPzogQVBJR3VpbGRNZW1iZXI7XHJcbiAgdXNlcj86IEFQSVVzZXI7XHJcbiAgdG9rZW46IHN0cmluZztcclxuICB2ZXJzaW9uOiBudW1iZXI7XHJcbiAgbWVzc2FnZT86IEFQSU1lc3NhZ2U7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcmFjdGlvbiBkYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUludGVyYWN0aW9uRGF0YSB7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICB0eXBlPzogQXBwbGljYXRpb25Db21tYW5kVHlwZTtcclxuICBvcHRpb25zPzogQVBJSW50ZXJhY3Rpb25PcHRpb25bXTtcclxuICBjdXN0b21faWQ/OiBzdHJpbmc7XHJcbiAgY29tcG9uZW50X3R5cGU/OiBudW1iZXI7XHJcbiAgdmFsdWVzPzogc3RyaW5nW107XHJcbiAgdGFyZ2V0X2lkPzogc3RyaW5nO1xyXG4gIHJlc29sdmVkPzogQVBJSW50ZXJhY3Rpb25SZXNvbHZlZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyYWN0aW9uIG9wdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElJbnRlcmFjdGlvbk9wdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICB2YWx1ZT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IEFQSUludGVyYWN0aW9uT3B0aW9uW107XHJcbiAgZm9jdXNlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcmFjdGlvbiByZXNvbHZlZCBkYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUludGVyYWN0aW9uUmVzb2x2ZWQge1xyXG4gIHVzZXJzPzogUmVjb3JkPHN0cmluZywgQVBJVXNlcj47XHJcbiAgbWVtYmVycz86IFJlY29yZDxzdHJpbmcsIEFQSUd1aWxkTWVtYmVyPjtcclxuICByb2xlcz86IFJlY29yZDxzdHJpbmcsIEFQSVJvbGU+O1xyXG4gIGNoYW5uZWxzPzogUmVjb3JkPHN0cmluZywgQVBJQ2hhbm5lbD47XHJcbiAgbWVzc2FnZXM/OiBSZWNvcmQ8c3RyaW5nLCBBUElNZXNzYWdlPjtcclxuICBhdHRhY2htZW50cz86IFJlY29yZDxzdHJpbmcsIEFQSUF0dGFjaG1lbnQ+O1xyXG59XHJcblxyXG4vKipcclxuICogR3VpbGQgbWVtYmVyIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElHdWlsZE1lbWJlciB7XHJcbiAgdXNlcj86IEFQSVVzZXI7XHJcbiAgbmljaz86IHN0cmluZztcclxuICBhdmF0YXI/OiBzdHJpbmc7XHJcbiAgcm9sZXM6IHN0cmluZ1tdO1xyXG4gIGpvaW5lZF9hdDogc3RyaW5nO1xyXG4gIGRlYWY/OiBib29sZWFuO1xyXG4gIG11dGU/OiBib29sZWFuO1xyXG4gIHBlcm1pc3Npb25zPzogc3RyaW5nO1xyXG4gIHZvaWNlPzoge1xyXG4gICAgY2hhbm5lbF9pZD86IHN0cmluZztcclxuICAgIHNlbGZfbXV0ZT86IGJvb2xlYW47XHJcbiAgICBzZWxmX2RlYWY/OiBib29sZWFuO1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSb2xlIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElSb2xlIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjb2xvcjogbnVtYmVyO1xyXG4gIHBvc2l0aW9uOiBudW1iZXI7XHJcbiAgcGVybWlzc2lvbnM6IHN0cmluZztcclxuICBtZW50aW9uYWJsZTogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFZvaWNlIHN0YXRlIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElWb2ljZVN0YXRlIHtcclxuICBndWlsZF9pZD86IHN0cmluZztcclxuICBjaGFubmVsX2lkPzogc3RyaW5nO1xyXG4gIHVzZXJfaWQ6IHN0cmluZztcclxuICBzZXNzaW9uX2lkPzogc3RyaW5nO1xyXG4gIHNlbGZfbXV0ZTogYm9vbGVhbjtcclxuICBzZWxmX2RlYWY6IGJvb2xlYW47XHJcbiAgbXV0ZT86IGJvb2xlYW47XHJcbiAgZGVhZj86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWb2ljZSBzZXJ2ZXIgdXBkYXRlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVZvaWNlU2VydmVyVXBkYXRlIHtcclxuICB0b2tlbjogc3RyaW5nO1xyXG4gIGd1aWxkX2lkOiBzdHJpbmc7XHJcbiAgZW5kcG9pbnQ6IHN0cmluZztcclxuICByb29tPzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGljYXRpb24gY29tbWFuZCBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQXBwbGljYXRpb25Db21tYW5kIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB0eXBlPzogQXBwbGljYXRpb25Db21tYW5kVHlwZTtcclxuICBvcHRpb25zPzogQVBJQXBwbGljYXRpb25Db21tYW5kT3B0aW9uW107XHJcbiAgZGVmYXVsdF9wZXJtaXNzaW9uPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFwcGxpY2F0aW9uIGNvbW1hbmQgb3B0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbiB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICBjaG9pY2VzPzogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfVtdO1xyXG4gIG9wdGlvbnM/OiBBUElBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25bXTtcclxuICBhdXRvY29tcGxldGU/OiBib29sZWFuO1xyXG4gIG1pbl92YWx1ZT86IG51bWJlcjtcclxuICBtYXhfdmFsdWU/OiBudW1iZXI7XHJcbiAgbWluX2xlbmd0aD86IG51bWJlcjtcclxuICBtYXhfbGVuZ3RoPzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogR2F0ZXdheSBwYXlsb2FkXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdhdGV3YXlQYXlsb2FkIHtcclxuICBvcDogbnVtYmVyO1xyXG4gIGQ/OiBhbnk7XHJcbiAgcz86IG51bWJlcjtcclxuICB0Pzogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogUmVhZHkgZXZlbnQgZGF0YVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBSZWFkeUV2ZW50RGF0YSB7XHJcbiAgdjogbnVtYmVyO1xyXG4gIHVzZXI6IEFQSVVzZXI7XHJcbiAgZ3VpbGRzOiBBUElHdWlsZFtdO1xyXG4gIHNlc3Npb25faWQ6IHN0cmluZztcclxuICBzaGFyZD86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgYXBwbGljYXRpb246IHsgaWQ6IHN0cmluZyB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generic BitField class
|
|
3
|
-
* API compatible with Discord.js BitField
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Data structure for bit fields
|
|
7
|
-
*/
|
|
8
|
-
export class BitField {
|
|
9
|
-
/** The raw bits */
|
|
10
|
-
bitfield;
|
|
11
|
-
/** Flags for this bitfield (override in subclass) */
|
|
12
|
-
static Flags = {};
|
|
13
|
-
/** Default bit value */
|
|
14
|
-
static DefaultBit = 0n;
|
|
15
|
-
constructor(bits = BitField.DefaultBit) {
|
|
16
|
-
this.bitfield = this.constructor.resolve(bits);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Check if this bitfield has a bit
|
|
20
|
-
*/
|
|
21
|
-
has(bit) {
|
|
22
|
-
const resolved = this.constructor.resolve(bit);
|
|
23
|
-
return (this.bitfield & resolved) === resolved;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Check if this bitfield has any of the bits
|
|
27
|
-
*/
|
|
28
|
-
any(bits) {
|
|
29
|
-
const resolved = this.constructor.resolve(bits);
|
|
30
|
-
return (this.bitfield & resolved) !== 0n;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add bits to this bitfield
|
|
34
|
-
*/
|
|
35
|
-
add(...bits) {
|
|
36
|
-
let total = 0n;
|
|
37
|
-
for (const bit of bits) {
|
|
38
|
-
total |= this.constructor.resolve(bit);
|
|
39
|
-
}
|
|
40
|
-
this.bitfield |= total;
|
|
41
|
-
return this;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Remove bits from this bitfield
|
|
45
|
-
*/
|
|
46
|
-
remove(...bits) {
|
|
47
|
-
let total = 0n;
|
|
48
|
-
for (const bit of bits) {
|
|
49
|
-
total |= this.constructor.resolve(bit);
|
|
50
|
-
}
|
|
51
|
-
this.bitfield &= ~total;
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Serialize to array of flag names
|
|
56
|
-
*/
|
|
57
|
-
toArray() {
|
|
58
|
-
const flags = this.constructor.Flags;
|
|
59
|
-
const result = [];
|
|
60
|
-
for (const [name, bit] of Object.entries(flags)) {
|
|
61
|
-
if (this.bitfield & bit) {
|
|
62
|
-
result.push(name);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return result;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Serialize to JSON
|
|
69
|
-
*/
|
|
70
|
-
toJSON() {
|
|
71
|
-
return typeof this.bitfield === 'bigint'
|
|
72
|
-
? this.bitfield.toString()
|
|
73
|
-
: this.bitfield;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get string representation
|
|
77
|
-
*/
|
|
78
|
-
toString() {
|
|
79
|
-
return this.bitfield.toString();
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get iterator
|
|
83
|
-
*/
|
|
84
|
-
*[Symbol.iterator]() {
|
|
85
|
-
yield* this.toArray();
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Freeze this bitfield
|
|
89
|
-
*/
|
|
90
|
-
freeze() {
|
|
91
|
-
return Object.freeze(this);
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Check equality
|
|
95
|
-
*/
|
|
96
|
-
equals(other) {
|
|
97
|
-
return this.bitfield === this.constructor.resolve(other);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Clone this bitfield
|
|
101
|
-
*/
|
|
102
|
-
clone() {
|
|
103
|
-
return new this.constructor(this.bitfield);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Resolve a bit to the numeric type
|
|
107
|
-
*/
|
|
108
|
-
static resolve(bit) {
|
|
109
|
-
if (typeof bit === 'bigint' || typeof bit === 'number') {
|
|
110
|
-
return bit;
|
|
111
|
-
}
|
|
112
|
-
if (bit instanceof BitField) {
|
|
113
|
-
return bit.bitfield;
|
|
114
|
-
}
|
|
115
|
-
if (typeof bit === 'string') {
|
|
116
|
-
const resolved = this.Flags[bit];
|
|
117
|
-
if (resolved === undefined) {
|
|
118
|
-
throw new Error(`Unknown bit: ${bit}`);
|
|
119
|
-
}
|
|
120
|
-
return resolved;
|
|
121
|
-
}
|
|
122
|
-
if (Array.isArray(bit)) {
|
|
123
|
-
let result = this.DefaultBit;
|
|
124
|
-
for (const b of bit) {
|
|
125
|
-
const resolved = this.resolve(b);
|
|
126
|
-
result |= resolved;
|
|
127
|
-
}
|
|
128
|
-
return result;
|
|
129
|
-
}
|
|
130
|
-
throw new Error(`Invalid bit: ${bit}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
export default BitField;
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQml0RmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvQml0RmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBU0g7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUNuQixtQkFBbUI7SUFDWixRQUFRLENBQUk7SUFFbkIscURBQXFEO0lBQ3JELE1BQU0sQ0FBQyxLQUFLLEdBQW9DLEVBQUUsQ0FBQztJQUVuRCx3QkFBd0I7SUFDeEIsTUFBTSxDQUFDLFVBQVUsR0FBb0IsRUFBRSxDQUFDO0lBRXhDLFlBQVksT0FBaUMsUUFBUSxDQUFDLFVBQWU7UUFDbkUsSUFBSSxDQUFDLFFBQVEsR0FBSSxJQUFJLENBQUMsV0FBK0IsQ0FBQyxPQUFPLENBQU8sSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLEdBQTZCO1FBQy9CLE1BQU0sUUFBUSxHQUFJLElBQUksQ0FBQyxXQUErQixDQUFDLE9BQU8sQ0FBTyxHQUFHLENBQUMsQ0FBQztRQUMxRSxPQUFPLENBQUUsSUFBSSxDQUFDLFFBQW1CLEdBQUksUUFBbUIsQ0FBQyxLQUFNLFFBQW1CLENBQUM7SUFDckYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLElBQThCO1FBQ2hDLE1BQU0sUUFBUSxHQUFJLElBQUksQ0FBQyxXQUErQixDQUFDLE9BQU8sQ0FBTyxJQUFJLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUUsSUFBSSxDQUFDLFFBQW1CLEdBQUksUUFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsR0FBRyxJQUFnQztRQUNyQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLEtBQUssSUFBSyxJQUFJLENBQUMsV0FBK0IsQ0FBQyxPQUFP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QztZQUN2QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBb0IsQ0FBQztZQUN2QyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLElBQUksUUFBa0IsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxNQUFXLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQzs7QUFHSCxlQUFlLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJpYyBCaXRGaWVsZCBjbGFzc1xuICogQVBJIGNvbXBhdGlibGUgd2l0aCBEaXNjb3JkLmpzIEJpdEZpZWxkXG4gKi9cblxuZXhwb3J0IHR5cGUgQml0RmllbGRSZXNvbHZhYmxlPFMgZXh0ZW5kcyBzdHJpbmcsIE4gZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXI+ID0gXG4gIHwgTiBcbiAgfCBOW10gXG4gIHwgUyBcbiAgfCBTW10gXG4gIHwgQml0RmllbGQ8UywgTj47XG5cbi8qKlxuICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGJpdCBmaWVsZHNcbiAqL1xuZXhwb3J0IGNsYXNzIEJpdEZpZWxkPFMgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIE4gZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXIgPSBiaWdpbnQ+IHtcbiAgLyoqIFRoZSByYXcgYml0cyAqL1xuICBwdWJsaWMgYml0ZmllbGQ6IE47XG5cbiAgLyoqIEZsYWdzIGZvciB0aGlzIGJpdGZpZWxkIChvdmVycmlkZSBpbiBzdWJjbGFzcykgKi9cbiAgc3RhdGljIEZsYWdzOiBSZWNvcmQ8c3RyaW5nLCBiaWdpbnQgfCBudW1iZXI+ID0ge307XG5cbiAgLyoqIERlZmF1bHQgYml0IHZhbHVlICovXG4gIHN0YXRpYyBEZWZhdWx0Qml0OiBiaWdpbnQgfCBudW1iZXIgPSAwbjtcblxuICBjb25zdHJ1Y3RvcihiaXRzOiBCaXRGaWVsZFJlc29sdmFibGU8UywgTj4gPSBCaXRGaWVsZC5EZWZhdWx0Qml0IGFzIE4pIHtcbiAgICB0aGlzLmJpdGZpZWxkID0gKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIEJpdEZpZWxkKS5yZXNvbHZlPFMsIE4+KGJpdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoaXMgYml0ZmllbGQgaGFzIGEgYml0XG4gICAqL1xuICBoYXMoYml0OiBCaXRGaWVsZFJlc29sdmFibGU8UywgTj4pOiBib29sZWFuIHtcbiAgICBjb25zdCByZXNvbHZlZCA9ICh0aGlzLmNvbnN0cnVjdG9yIGFzIHR5cGVvZiBCaXRGaWVsZCkucmVzb2x2ZTxTLCBOPihiaXQpO1xuICAgIHJldHVybiAoKHRoaXMuYml0ZmllbGQgYXMgYmlnaW50KSAmIChyZXNvbHZlZCBhcyBiaWdpbnQpKSA9PT0gKHJlc29sdmVkIGFzIGJpZ2ludCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdGhpcyBiaXRmaWVsZCBoYXMgYW55IG9mIHRoZSBiaXRzXG4gICAqL1xuICBhbnkoYml0czogQml0RmllbGRSZXNvbHZhYmxlPFMsIE4+KTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQml0RmllbGQpLnJlc29sdmU8UywgTj4oYml0cyk7XG4gICAgcmV0dXJuICgodGhpcy5iaXRmaWVsZCBhcyBiaWdpbnQpICYgKHJlc29sdmVkIGFzIGJpZ2ludCkpICE9PSAwbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYml0cyB0byB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICBhZGQoLi4uYml0czogQml0RmllbGRSZXNvbHZhYmxlPFMsIE4+W10pOiB0aGlzIHtcbiAgICBsZXQgdG90YWwgPSAwbjtcbiAgICBmb3IgKGNvbnN0IGJpdCBvZiBiaXRzKSB7XG4gICAgICB0b3RhbCB8PSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQml0RmllbGQpLnJlc29sdmU8UywgTj4oYml0KSBhcyBiaWdpbnQ7XG4gICAgfVxuICAgICh0aGlzLmJpdGZpZWxkIGFzIGJpZ2ludCkgfD0gdG90YWw7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGJpdHMgZnJvbSB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICByZW1vdmUoLi4uYml0czogQml0RmllbGRSZXNvbHZhYmxlPFMsIE4+W10pOiB0aGlzIHtcbiAgICBsZXQgdG90YWwgPSAwbjtcbiAgICBmb3IgKGNvbnN0IGJpdCBvZiBiaXRzKSB7XG4gICAgICB0b3RhbCB8PSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQml0RmllbGQpLnJlc29sdmU8UywgTj4oYml0KSBhcyBiaWdpbnQ7XG4gICAgfVxuICAgICh0aGlzLmJpdGZpZWxkIGFzIGJpZ2ludCkgJj0gfnRvdGFsO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSB0byBhcnJheSBvZiBmbGFnIG5hbWVzXG4gICAqL1xuICB0b0FycmF5KCk6IFNbXSB7XG4gICAgY29uc3QgZmxhZ3MgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQml0RmllbGQpLkZsYWdzO1xuICAgIGNvbnN0IHJlc3VsdDogU1tdID0gW107XG4gICAgXG4gICAgZm9yIChjb25zdCBbbmFtZSwgYml0XSBvZiBPYmplY3QuZW50cmllcyhmbGFncykpIHtcbiAgICAgIGlmICgodGhpcy5iaXRmaWVsZCBhcyBiaWdpbnQpICYgKGJpdCBhcyBiaWdpbnQpKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKG5hbWUgYXMgUyk7XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIHRvIEpTT05cbiAgICovXG4gIHRvSlNPTigpOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5iaXRmaWVsZCA9PT0gJ2JpZ2ludCcgXG4gICAgICA/IHRoaXMuYml0ZmllbGQudG9TdHJpbmcoKSBcbiAgICAgIDogdGhpcy5iaXRmaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgc3RyaW5nIHJlcHJlc2VudGF0aW9uXG4gICAqL1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGl0ZXJhdG9yXG4gICAqL1xuICAqW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmFibGVJdGVyYXRvcjxTPiB7XG4gICAgeWllbGQqIHRoaXMudG9BcnJheSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZyZWV6ZSB0aGlzIGJpdGZpZWxkXG4gICAqL1xuICBmcmVlemUoKTogUmVhZG9ubHk8dGhpcz4ge1xuICAgIHJldHVybiBPYmplY3QuZnJlZXplKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGVxdWFsaXR5XG4gICAqL1xuICBlcXVhbHMob3RoZXI6IEJpdEZpZWxkUmVzb2x2YWJsZTxTLCBOPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkID09PSAodGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgQml0RmllbGQpLnJlc29sdmU8UywgTj4ob3RoZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb25lIHRoaXMgYml0ZmllbGRcbiAgICovXG4gIGNsb25lKCk6IEJpdEZpZWxkPFMsIE4+IHtcbiAgICByZXR1cm4gbmV3ICh0aGlzLmNvbnN0cnVjdG9yIGFzIG5ldyAoYml0czogTikgPT4gQml0RmllbGQ8UywgTj4pKHRoaXMuYml0ZmllbGQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgYSBiaXQgdG8gdGhlIG51bWVyaWMgdHlwZVxuICAgKi9cbiAgc3RhdGljIHJlc29sdmU8UyBleHRlbmRzIHN0cmluZywgTiBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oYml0OiBCaXRGaWVsZFJlc29sdmFibGU8UywgTj4pOiBOIHtcbiAgICBpZiAodHlwZW9mIGJpdCA9PT0gJ2JpZ2ludCcgfHwgdHlwZW9mIGJpdCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBiaXQgYXMgTjtcbiAgICB9XG5cbiAgICBpZiAoYml0IGluc3RhbmNlb2YgQml0RmllbGQpIHtcbiAgICAgIHJldHVybiBiaXQuYml0ZmllbGQgYXMgTjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGJpdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gdGhpcy5GbGFnc1tiaXRdO1xuICAgICAgaWYgKHJlc29sdmVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIGJpdDogJHtiaXR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZWQgYXMgTjtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShiaXQpKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gdGhpcy5EZWZhdWx0Qml0IGFzIGJpZ2ludDtcbiAgICAgIGZvciAoY29uc3QgYiBvZiBiaXQpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWQgPSB0aGlzLnJlc29sdmU8UywgTj4oYik7XG4gICAgICAgIHJlc3VsdCB8PSByZXNvbHZlZCBhcyBiaWdpbnQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0IGFzIE47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJpdDogJHtiaXR9YCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQml0RmllbGQ7XG4iXX0=
|