@jubbio/core 1.1.20 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Client.js +13 -14
- package/dist/cjs/Client.d.ts +157 -0
- package/dist/cjs/Client.js +640 -0
- package/dist/cjs/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/cjs/builders/ActionRowBuilder.js +68 -0
- package/dist/cjs/builders/ButtonBuilder.d.ts +77 -0
- package/dist/cjs/builders/ButtonBuilder.js +96 -0
- package/dist/cjs/builders/EmbedBuilder.d.ts +157 -0
- package/dist/cjs/builders/EmbedBuilder.js +208 -0
- package/dist/cjs/builders/ModalBuilder.d.ts +122 -0
- package/dist/cjs/builders/ModalBuilder.js +162 -0
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/cjs/builders/SelectMenuBuilder.js +165 -0
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/cjs/builders/SlashCommandBuilder.js +324 -0
- package/dist/cjs/builders/index.d.ts +9 -0
- package/dist/cjs/builders/index.js +26 -0
- package/dist/cjs/enums.d.ts +191 -0
- package/dist/cjs/enums.js +211 -0
- package/dist/cjs/index.d.ts +25 -0
- package/dist/cjs/index.js +130 -0
- package/dist/cjs/managers/BaseManager.d.ts +69 -0
- package/dist/cjs/managers/BaseManager.js +106 -0
- package/dist/cjs/managers/ChannelManager.d.ts +95 -0
- package/dist/cjs/managers/ChannelManager.js +205 -0
- package/dist/cjs/managers/GuildMemberManager.d.ts +74 -0
- package/dist/cjs/managers/GuildMemberManager.js +157 -0
- package/dist/cjs/managers/RoleManager.d.ts +84 -0
- package/dist/cjs/managers/RoleManager.js +207 -0
- package/dist/cjs/managers/index.d.ts +7 -0
- package/dist/cjs/managers/index.js +24 -0
- package/dist/cjs/rest/REST.d.ts +527 -0
- package/dist/cjs/rest/REST.js +904 -0
- package/dist/cjs/rest/index.d.ts +1 -0
- package/dist/cjs/rest/index.js +18 -0
- package/dist/cjs/sharding/ShardingManager.d.ts +179 -0
- package/dist/cjs/sharding/ShardingManager.js +375 -0
- package/dist/cjs/sharding/index.d.ts +4 -0
- package/dist/cjs/sharding/index.js +21 -0
- package/dist/cjs/structures/Channel.d.ts +122 -0
- package/dist/cjs/structures/Channel.js +240 -0
- package/dist/cjs/structures/Collection.d.ts +53 -0
- package/dist/cjs/structures/Collection.js +115 -0
- package/dist/cjs/structures/Guild.d.ts +59 -0
- package/dist/cjs/structures/Guild.js +94 -0
- package/dist/cjs/structures/GuildMember.d.ts +174 -0
- package/dist/cjs/structures/GuildMember.js +311 -0
- package/dist/cjs/structures/Interaction.d.ts +245 -0
- package/dist/cjs/structures/Interaction.js +450 -0
- package/dist/cjs/structures/Message.d.ts +98 -0
- package/dist/cjs/structures/Message.js +195 -0
- package/dist/cjs/structures/User.d.ts +37 -0
- package/dist/cjs/structures/User.js +65 -0
- package/dist/cjs/structures/index.d.ts +7 -0
- package/dist/cjs/structures/index.js +25 -0
- package/dist/cjs/structures.d.ts +1 -0
- package/dist/cjs/structures.js +19 -0
- package/dist/cjs/types.d.ts +255 -0
- package/dist/cjs/types.js +3 -0
- package/dist/cjs/utils/BitField.d.ts +66 -0
- package/dist/cjs/utils/BitField.js +138 -0
- package/dist/cjs/utils/Collection.d.ts +116 -0
- package/dist/cjs/utils/Collection.js +265 -0
- package/dist/cjs/utils/Collector.d.ts +152 -0
- package/dist/cjs/utils/Collector.js +314 -0
- package/dist/cjs/utils/DataResolver.d.ts +61 -0
- package/dist/cjs/utils/DataResolver.js +146 -0
- package/dist/cjs/utils/Formatters.d.ts +145 -0
- package/dist/cjs/utils/Formatters.js +213 -0
- package/dist/cjs/utils/IntentsBitField.d.ts +85 -0
- package/dist/cjs/utils/IntentsBitField.js +99 -0
- package/dist/cjs/utils/Partials.d.ts +104 -0
- package/dist/cjs/utils/Partials.js +148 -0
- package/dist/cjs/utils/PermissionsBitField.d.ts +118 -0
- package/dist/cjs/utils/PermissionsBitField.js +145 -0
- package/dist/cjs/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/cjs/utils/SnowflakeUtil.js +93 -0
- package/dist/cjs/utils/Sweepers.d.ts +119 -0
- package/dist/cjs/utils/Sweepers.js +249 -0
- package/dist/cjs/utils/index.d.ts +13 -0
- package/dist/cjs/utils/index.js +30 -0
- package/dist/esm/Client.js +634 -0
- package/dist/esm/builders/ActionRowBuilder.js +64 -0
- package/dist/esm/builders/ButtonBuilder.js +92 -0
- package/dist/esm/builders/EmbedBuilder.js +204 -0
- package/dist/esm/builders/ModalBuilder.js +157 -0
- package/dist/esm/builders/SelectMenuBuilder.js +161 -0
- package/dist/esm/builders/SlashCommandBuilder.js +311 -0
- package/dist/esm/builders/index.js +10 -0
- package/dist/esm/enums.js +208 -0
- package/dist/esm/index.js +34 -0
- package/dist/esm/managers/BaseManager.js +100 -0
- package/dist/esm/managers/ChannelManager.js +200 -0
- package/dist/esm/managers/GuildMemberManager.js +153 -0
- package/dist/esm/managers/RoleManager.js +203 -0
- package/dist/esm/managers/index.js +8 -0
- package/dist/esm/rest/REST.js +900 -0
- package/dist/esm/rest/index.js +2 -0
- package/dist/esm/sharding/ShardingManager.js +366 -0
- package/dist/esm/sharding/index.js +5 -0
- package/dist/esm/structures/Channel.js +232 -0
- package/dist/esm/structures/Collection.js +111 -0
- package/dist/esm/structures/Guild.js +90 -0
- package/dist/esm/structures/GuildMember.js +306 -0
- package/dist/esm/structures/Interaction.js +438 -0
- package/dist/esm/structures/Message.js +191 -0
- package/dist/esm/structures/User.js +61 -0
- package/dist/esm/structures/index.js +9 -0
- package/dist/esm/structures.js +3 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils/BitField.js +134 -0
- package/dist/esm/utils/Collection.js +261 -0
- package/dist/esm/utils/Collector.js +305 -0
- package/dist/esm/utils/DataResolver.js +142 -0
- package/dist/esm/utils/Formatters.js +191 -0
- package/dist/esm/utils/IntentsBitField.js +93 -0
- package/dist/esm/utils/Partials.js +137 -0
- package/dist/esm/utils/PermissionsBitField.js +141 -0
- package/dist/esm/utils/SnowflakeUtil.js +89 -0
- package/dist/esm/utils/Sweepers.js +245 -0
- package/dist/esm/utils/index.js +14 -0
- package/dist/rest/REST.js +8 -1
- package/dist/structures/Interaction.js +3 -5
- package/dist/structures/Message.js +56 -2
- package/package.json +14 -4
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Message = void 0;
|
|
4
|
+
const User_1 = require("./User");
|
|
5
|
+
const Collector_1 = require("../utils/Collector");
|
|
6
|
+
const EmbedBuilder_1 = require("../builders/EmbedBuilder");
|
|
7
|
+
/** Backend flat embed format (for normalization) */
|
|
8
|
+
/** Resolve EmbedBuilder instances to plain API objects */
|
|
9
|
+
function resolveEmbeds(embeds) {
|
|
10
|
+
if (!embeds)
|
|
11
|
+
return undefined;
|
|
12
|
+
return embeds.map(e => e instanceof EmbedBuilder_1.EmbedBuilder ? e.toJSON() : e);
|
|
13
|
+
}
|
|
14
|
+
/** Normalize embed from backend to APIEmbed format */
|
|
15
|
+
function normalizeEmbed(embed) {
|
|
16
|
+
const normalized = {
|
|
17
|
+
title: embed.title,
|
|
18
|
+
description: embed.description,
|
|
19
|
+
url: embed.url,
|
|
20
|
+
timestamp: embed.timestamp,
|
|
21
|
+
color: embed.color,
|
|
22
|
+
fields: embed.fields,
|
|
23
|
+
author: embed.author,
|
|
24
|
+
footer: embed.footer,
|
|
25
|
+
};
|
|
26
|
+
// Normalize thumbnail: string → nested object
|
|
27
|
+
if (typeof embed.thumbnail === 'string') {
|
|
28
|
+
normalized.thumbnail = { url: embed.thumbnail };
|
|
29
|
+
}
|
|
30
|
+
else if (embed.thumbnail && typeof embed.thumbnail === 'object') {
|
|
31
|
+
normalized.thumbnail = embed.thumbnail;
|
|
32
|
+
}
|
|
33
|
+
// Normalize image: string → nested object
|
|
34
|
+
if (typeof embed.image === 'string') {
|
|
35
|
+
normalized.image = { url: embed.image };
|
|
36
|
+
}
|
|
37
|
+
else if (embed.image && typeof embed.image === 'object') {
|
|
38
|
+
normalized.image = embed.image;
|
|
39
|
+
}
|
|
40
|
+
return normalized;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Represents a message
|
|
44
|
+
*/
|
|
45
|
+
class Message {
|
|
46
|
+
/** Reference to the client */
|
|
47
|
+
client;
|
|
48
|
+
/** Message ID */
|
|
49
|
+
id;
|
|
50
|
+
/** Channel ID */
|
|
51
|
+
channelId;
|
|
52
|
+
/** Guild ID (if in a guild) */
|
|
53
|
+
guildId;
|
|
54
|
+
/** Message author */
|
|
55
|
+
author;
|
|
56
|
+
/** Message content */
|
|
57
|
+
content;
|
|
58
|
+
/** Message timestamp */
|
|
59
|
+
createdTimestamp;
|
|
60
|
+
/** Edit timestamp */
|
|
61
|
+
editedTimestamp;
|
|
62
|
+
/** Attachments */
|
|
63
|
+
attachments;
|
|
64
|
+
/** Embeds */
|
|
65
|
+
embeds;
|
|
66
|
+
/** Components (buttons, select menus, etc.) */
|
|
67
|
+
components;
|
|
68
|
+
/** Mentions in the message */
|
|
69
|
+
mentions;
|
|
70
|
+
/** User ID (from backend) */
|
|
71
|
+
user_id;
|
|
72
|
+
/** Guild member (if in a guild) */
|
|
73
|
+
member;
|
|
74
|
+
constructor(client, data) {
|
|
75
|
+
this.client = client;
|
|
76
|
+
this.id = data.id;
|
|
77
|
+
this.channelId = data.channel_id;
|
|
78
|
+
this.guildId = data.guild_id;
|
|
79
|
+
this.author = new User_1.User(data.author);
|
|
80
|
+
this.content = data.content ?? '';
|
|
81
|
+
// Handle different timestamp formats from backend
|
|
82
|
+
const timestamp = data.timestamp || data.created_at;
|
|
83
|
+
this.createdTimestamp = timestamp ? new Date(timestamp).getTime() : Date.now();
|
|
84
|
+
const editedTimestamp = data.edited_timestamp || data.updated_at;
|
|
85
|
+
this.editedTimestamp = editedTimestamp ? new Date(editedTimestamp).getTime() : undefined;
|
|
86
|
+
this.attachments = data.attachments || [];
|
|
87
|
+
// Normalize embeds from backend (flat format → nested format)
|
|
88
|
+
this.embeds = data.embeds ? data.embeds.map(normalizeEmbed) : [];
|
|
89
|
+
// Components (ActionRows with buttons, select menus, etc.)
|
|
90
|
+
this.components = data.components || [];
|
|
91
|
+
this.mentions = data.mentions || {};
|
|
92
|
+
this.user_id = data.user_id;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Get the creation date
|
|
96
|
+
*/
|
|
97
|
+
get createdAt() {
|
|
98
|
+
return new Date(this.createdTimestamp);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get the edit date
|
|
102
|
+
*/
|
|
103
|
+
get editedAt() {
|
|
104
|
+
return this.editedTimestamp ? new Date(this.editedTimestamp) : null;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Reply to this message
|
|
108
|
+
*/
|
|
109
|
+
async reply(options) {
|
|
110
|
+
const content = typeof options === 'string' ? options : options.content;
|
|
111
|
+
const embeds = typeof options === 'string' ? undefined : resolveEmbeds(options.embeds);
|
|
112
|
+
const components = typeof options === 'string' ? undefined : options.components;
|
|
113
|
+
const data = await this.client.rest.createMessage(this.guildId || '', this.channelId, {
|
|
114
|
+
content,
|
|
115
|
+
embeds,
|
|
116
|
+
components,
|
|
117
|
+
message_reference: { message_id: this.id }
|
|
118
|
+
});
|
|
119
|
+
return new Message(this.client, data);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Edit this message (only if author is the bot)
|
|
123
|
+
*/
|
|
124
|
+
async edit(options) {
|
|
125
|
+
const content = typeof options === 'string' ? options : options.content;
|
|
126
|
+
const embeds = typeof options === 'string' ? undefined : resolveEmbeds(options.embeds);
|
|
127
|
+
const components = typeof options === 'string' ? undefined : options.components;
|
|
128
|
+
const data = await this.client.rest.editMessage(this.guildId || '', this.channelId, this.id, {
|
|
129
|
+
content,
|
|
130
|
+
embeds,
|
|
131
|
+
components,
|
|
132
|
+
});
|
|
133
|
+
return new Message(this.client, data);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Delete this message
|
|
137
|
+
*/
|
|
138
|
+
async delete() {
|
|
139
|
+
await this.client.rest.deleteMessage(this.guildId || '', this.channelId, this.id);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* React to this message
|
|
143
|
+
*/
|
|
144
|
+
async react(emoji) {
|
|
145
|
+
await this.client.rest.addReaction(this.guildId || '', this.channelId, this.id, emoji);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Pin this message
|
|
149
|
+
*/
|
|
150
|
+
async pin() {
|
|
151
|
+
await this.client.rest.pinMessage(this.guildId || '', this.channelId, this.id);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Unpin this message
|
|
155
|
+
*/
|
|
156
|
+
async unpin() {
|
|
157
|
+
await this.client.rest.unpinMessage(this.guildId || '', this.channelId, this.id);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Create a component interaction collector on this message
|
|
161
|
+
*/
|
|
162
|
+
createMessageComponentCollector(options) {
|
|
163
|
+
return new Collector_1.InteractionCollector(this.client, {
|
|
164
|
+
...options,
|
|
165
|
+
messageId: this.id,
|
|
166
|
+
channelId: this.channelId,
|
|
167
|
+
guildId: this.guildId,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Await component interactions on this message
|
|
172
|
+
*/
|
|
173
|
+
awaitMessageComponent(options) {
|
|
174
|
+
return new Promise((resolve, reject) => {
|
|
175
|
+
const collector = this.createMessageComponentCollector({ ...options, max: 1 });
|
|
176
|
+
collector.once('end', (collected, reason) => {
|
|
177
|
+
const first = collected.first();
|
|
178
|
+
if (first) {
|
|
179
|
+
resolve(first);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
reject(new Error(reason || 'No interaction received'));
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Convert to string
|
|
189
|
+
*/
|
|
190
|
+
toString() {
|
|
191
|
+
return this.content;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.Message = Message;
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL01lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBSzlCLGtEQUF1RjtBQUN2RiwyREFBd0Q7QUFFeEQsb0RBQW9EO0FBQ3BELDBEQUEwRDtBQUMxRCxTQUFTLGFBQWEsQ0FBQyxNQUFvQztJQUN6RCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSwyQkFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JFLENBQUM7QUFFRCxzREFBc0Q7QUFDdEQsU0FBUyxjQUFjLENBQUMsS0FBNEY7SUFDbEgsTUFBTSxVQUFVLEdBQWE7UUFDM0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztRQUM5QixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7UUFDZCxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVM7UUFDMUIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ2xCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtRQUNwQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07UUFDcEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUM7SUFFRiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEMsVUFBVSxDQUFDLFNBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEQsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDbEUsVUFBVSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCwwQ0FBMEM7SUFDMUMsSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDcEMsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztTQUFNLElBQUksS0FBSyxDQUFDLEtBQUssSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDMUQsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBV0Q7O0dBRUc7QUFDSCxNQUFhLE9BQU87SUFDbEIsOEJBQThCO0lBQ2QsTUFBTSxDQUFTO0lBRS9CLGlCQUFpQjtJQUNELEVBQUUsQ0FBUztJQUUzQixpQkFBaUI7SUFDRCxTQUFTLENBQVM7SUFFbEMsK0JBQStCO0lBQ2YsT0FBTyxDQUFVO0lBRWpDLHFCQUFxQjtJQUNMLE1BQU0sQ0FBTztJQUU3QixzQkFBc0I7SUFDZixPQUFPLENBQVM7SUFFdkIsd0JBQXdCO0lBQ1IsZ0JBQWdCLENBQVM7SUFFekMscUJBQXFCO0lBQ2QsZUFBZSxDQUFVO0lBRWhDLGtCQUFrQjtJQUNYLFdBQVcsQ0FBa0I7SUFFcEMsYUFBYTtJQUNOLE1BQU0sQ0FBYTtJQUUxQiwrQ0FBK0M7SUFDeEMsVUFBVSxDQUFRO0lBRXpCLDhCQUE4QjtJQUN2QixRQUFRLENBQWtCO0lBRWpDLDZCQUE2QjtJQUN0QixPQUFPLENBQVU7SUFFeEIsbUNBQW1DO0lBQzVCLE1BQU0sQ0FBZTtJQUU1QixZQUFZLE1BQWMsRUFBRSxJQUFnQjtRQUMxQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksV0FBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO1FBRWxDLGtEQUFrRDtRQUNsRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFLLElBQVksQ0FBQyxVQUFVLENBQUM7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUUvRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLElBQUssSUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMxRSxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV6RixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1FBRTFDLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakUsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxVQUFVLEdBQUksSUFBWSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFFakQsSUFBSSxDQUFDLFFBQVEsR0FBSSxJQUFZLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxHQUFJLElBQVksQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBc0M7UUFDaEQsTUFBTSxPQUFPLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDeEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkYsTUFBTSxVQUFVLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFFaEYsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwRixPQUFPO1lBQ1AsTUFBTTtZQUNOLFVBQVU7WUFDVixpQkFBaUIsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFO1NBQzNDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQXNDO1FBQy9DLE1BQU0sT0FBTyxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZGLE1BQU0sVUFBVSxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRWhGLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUMzRixPQUFPO1lBQ1AsTUFBTTtZQUNOLFVBQVU7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWE7UUFDdkIsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxHQUFHO1FBQ1AsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLEtBQUs7UUFDVCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSCwrQkFBK0IsQ0FBQyxPQUF3RDtRQUN0RixPQUFPLElBQUksZ0NBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUMzQyxHQUFHLE9BQU87WUFDVixTQUFTLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbEIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxxQkFBcUIsQ0FBQyxPQUFnRTtRQUNwRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRS9FLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSx5QkFBeUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUF2TEQsMEJBdUxDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBJTWVzc2FnZSwgQVBJRW1iZWQsIEFQSUF0dGFjaG1lbnQgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL1VzZXInO1xyXG5pbXBvcnQgeyBHdWlsZE1lbWJlciB9IGZyb20gJy4vR3VpbGRNZW1iZXInO1xyXG5pbXBvcnQgdHlwZSB7IENsaWVudCB9IGZyb20gJy4uL0NsaWVudCc7XHJcbmltcG9ydCB0eXBlIHsgTWVzc2FnZUNyZWF0ZU9wdGlvbnMgfSBmcm9tICcuL0NoYW5uZWwnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi9Db2xsZWN0aW9uJztcclxuaW1wb3J0IHsgSW50ZXJhY3Rpb25Db2xsZWN0b3IsIEludGVyYWN0aW9uQ29sbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL0NvbGxlY3Rvcic7XHJcbmltcG9ydCB7IEVtYmVkQnVpbGRlciB9IGZyb20gJy4uL2J1aWxkZXJzL0VtYmVkQnVpbGRlcic7XHJcblxyXG4vKiogQmFja2VuZCBmbGF0IGVtYmVkIGZvcm1hdCAoZm9yIG5vcm1hbGl6YXRpb24pICovXHJcbi8qKiBSZXNvbHZlIEVtYmVkQnVpbGRlciBpbnN0YW5jZXMgdG8gcGxhaW4gQVBJIG9iamVjdHMgKi9cclxuZnVuY3Rpb24gcmVzb2x2ZUVtYmVkcyhlbWJlZHM/OiAoQVBJRW1iZWQgfCBFbWJlZEJ1aWxkZXIpW10pOiBBUElFbWJlZFtdIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoIWVtYmVkcykgcmV0dXJuIHVuZGVmaW5lZDtcclxuICByZXR1cm4gZW1iZWRzLm1hcChlID0+IGUgaW5zdGFuY2VvZiBFbWJlZEJ1aWxkZXIgPyBlLnRvSlNPTigpIDogZSk7XHJcbn1cclxuXHJcbi8qKiBOb3JtYWxpemUgZW1iZWQgZnJvbSBiYWNrZW5kIHRvIEFQSUVtYmVkIGZvcm1hdCAqL1xyXG5mdW5jdGlvbiBub3JtYWxpemVFbWJlZChlbWJlZDogQVBJRW1iZWQgJiB7IGltYWdlPzogeyB1cmw6IHN0cmluZyB9IHwgc3RyaW5nOyB0aHVtYm5haWw/OiB7IHVybDogc3RyaW5nIH0gfCBzdHJpbmcgfSk6IEFQSUVtYmVkIHtcclxuICBjb25zdCBub3JtYWxpemVkOiBBUElFbWJlZCA9IHtcclxuICAgIHRpdGxlOiBlbWJlZC50aXRsZSxcclxuICAgIGRlc2NyaXB0aW9uOiBlbWJlZC5kZXNjcmlwdGlvbixcclxuICAgIHVybDogZW1iZWQudXJsLFxyXG4gICAgdGltZXN0YW1wOiBlbWJlZC50aW1lc3RhbXAsXHJcbiAgICBjb2xvcjogZW1iZWQuY29sb3IsXHJcbiAgICBmaWVsZHM6IGVtYmVkLmZpZWxkcyxcclxuICAgIGF1dGhvcjogZW1iZWQuYXV0aG9yLFxyXG4gICAgZm9vdGVyOiBlbWJlZC5mb290ZXIsXHJcbiAgfTtcclxuXHJcbiAgLy8gTm9ybWFsaXplIHRodW1ibmFpbDogc3RyaW5nIOKGkiBuZXN0ZWQgb2JqZWN0XHJcbiAgaWYgKHR5cGVvZiBlbWJlZC50aHVtYm5haWwgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBub3JtYWxpemVkLnRodW1ibmFpbCA9IHsgdXJsOiBlbWJlZC50aHVtYm5haWwgfTtcclxuICB9IGVsc2UgaWYgKGVtYmVkLnRodW1ibmFpbCAmJiB0eXBlb2YgZW1iZWQudGh1bWJuYWlsID09PSAnb2JqZWN0Jykge1xyXG4gICAgbm9ybWFsaXplZC50aHVtYm5haWwgPSBlbWJlZC50aHVtYm5haWw7XHJcbiAgfVxyXG5cclxuICAvLyBOb3JtYWxpemUgaW1hZ2U6IHN0cmluZyDihpIgbmVzdGVkIG9iamVjdFxyXG4gIGlmICh0eXBlb2YgZW1iZWQuaW1hZ2UgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBub3JtYWxpemVkLmltYWdlID0geyB1cmw6IGVtYmVkLmltYWdlIH07XHJcbiAgfSBlbHNlIGlmIChlbWJlZC5pbWFnZSAmJiB0eXBlb2YgZW1iZWQuaW1hZ2UgPT09ICdvYmplY3QnKSB7XHJcbiAgICBub3JtYWxpemVkLmltYWdlID0gZW1iZWQuaW1hZ2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbm9ybWFsaXplZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1lbnRpb24gZGF0YSBmcm9tIGJhY2tlbmRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU1lbnRpb25zIHtcclxuICB1c2Vycz86IEFycmF5PHsgaWQ6IG51bWJlciB8IHN0cmluZzsgdXNlcm5hbWU6IHN0cmluZyB9PjtcclxuICByb2xlcz86IEFycmF5PHsgaWQ6IHN0cmluZzsgbmFtZT86IHN0cmluZyB9PjtcclxuICBldmVyeW9uZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgbWVzc2FnZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIE1lc3NhZ2Uge1xyXG4gIC8qKiBSZWZlcmVuY2UgdG8gdGhlIGNsaWVudCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IENsaWVudDtcclxuICBcclxuICAvKiogTWVzc2FnZSBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBDaGFubmVsIElEICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxJZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBHdWlsZCBJRCAoaWYgaW4gYSBndWlsZCkgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgZ3VpbGRJZD86IHN0cmluZztcclxuICBcclxuICAvKiogTWVzc2FnZSBhdXRob3IgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgYXV0aG9yOiBVc2VyO1xyXG4gIFxyXG4gIC8qKiBNZXNzYWdlIGNvbnRlbnQgKi9cclxuICBwdWJsaWMgY29udGVudDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBNZXNzYWdlIHRpbWVzdGFtcCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGVkVGltZXN0YW1wOiBudW1iZXI7XHJcbiAgXHJcbiAgLyoqIEVkaXQgdGltZXN0YW1wICovXHJcbiAgcHVibGljIGVkaXRlZFRpbWVzdGFtcD86IG51bWJlcjtcclxuICBcclxuICAvKiogQXR0YWNobWVudHMgKi9cclxuICBwdWJsaWMgYXR0YWNobWVudHM6IEFQSUF0dGFjaG1lbnRbXTtcclxuICBcclxuICAvKiogRW1iZWRzICovXHJcbiAgcHVibGljIGVtYmVkczogQVBJRW1iZWRbXTtcclxuXHJcbiAgLyoqIENvbXBvbmVudHMgKGJ1dHRvbnMsIHNlbGVjdCBtZW51cywgZXRjLikgKi9cclxuICBwdWJsaWMgY29tcG9uZW50czogYW55W107XHJcblxyXG4gIC8qKiBNZW50aW9ucyBpbiB0aGUgbWVzc2FnZSAqL1xyXG4gIHB1YmxpYyBtZW50aW9uczogTWVzc2FnZU1lbnRpb25zO1xyXG5cclxuICAvKiogVXNlciBJRCAoZnJvbSBiYWNrZW5kKSAqL1xyXG4gIHB1YmxpYyB1c2VyX2lkPzogbnVtYmVyO1xyXG5cclxuICAvKiogR3VpbGQgbWVtYmVyIChpZiBpbiBhIGd1aWxkKSAqL1xyXG4gIHB1YmxpYyBtZW1iZXI/OiBHdWlsZE1lbWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoY2xpZW50OiBDbGllbnQsIGRhdGE6IEFQSU1lc3NhZ2UpIHtcclxuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50O1xyXG4gICAgdGhpcy5pZCA9IGRhdGEuaWQ7XHJcbiAgICB0aGlzLmNoYW5uZWxJZCA9IGRhdGEuY2hhbm5lbF9pZDtcclxuICAgIHRoaXMuZ3VpbGRJZCA9IGRhdGEuZ3VpbGRfaWQ7XHJcbiAgICB0aGlzLmF1dGhvciA9IG5ldyBVc2VyKGRhdGEuYXV0aG9yKTtcclxuICAgIHRoaXMuY29udGVudCA9IGRhdGEuY29udGVudCA/PyAnJztcclxuICAgIFxyXG4gICAgLy8gSGFuZGxlIGRpZmZlcmVudCB0aW1lc3RhbXAgZm9ybWF0cyBmcm9tIGJhY2tlbmRcclxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IGRhdGEudGltZXN0YW1wIHx8IChkYXRhIGFzIGFueSkuY3JlYXRlZF9hdDtcclxuICAgIHRoaXMuY3JlYXRlZFRpbWVzdGFtcCA9IHRpbWVzdGFtcCA/IG5ldyBEYXRlKHRpbWVzdGFtcCkuZ2V0VGltZSgpIDogRGF0ZS5ub3coKTtcclxuICAgIFxyXG4gICAgY29uc3QgZWRpdGVkVGltZXN0YW1wID0gZGF0YS5lZGl0ZWRfdGltZXN0YW1wIHx8IChkYXRhIGFzIGFueSkudXBkYXRlZF9hdDtcclxuICAgIHRoaXMuZWRpdGVkVGltZXN0YW1wID0gZWRpdGVkVGltZXN0YW1wID8gbmV3IERhdGUoZWRpdGVkVGltZXN0YW1wKS5nZXRUaW1lKCkgOiB1bmRlZmluZWQ7XHJcbiAgICBcclxuICAgIHRoaXMuYXR0YWNobWVudHMgPSBkYXRhLmF0dGFjaG1lbnRzIHx8IFtdO1xyXG4gICAgXHJcbiAgICAvLyBOb3JtYWxpemUgZW1iZWRzIGZyb20gYmFja2VuZCAoZmxhdCBmb3JtYXQg4oaSIG5lc3RlZCBmb3JtYXQpXHJcbiAgICB0aGlzLmVtYmVkcyA9IGRhdGEuZW1iZWRzID8gZGF0YS5lbWJlZHMubWFwKG5vcm1hbGl6ZUVtYmVkKSA6IFtdO1xyXG4gICAgXHJcbiAgICAvLyBDb21wb25lbnRzIChBY3Rpb25Sb3dzIHdpdGggYnV0dG9ucywgc2VsZWN0IG1lbnVzLCBldGMuKVxyXG4gICAgdGhpcy5jb21wb25lbnRzID0gKGRhdGEgYXMgYW55KS5jb21wb25lbnRzIHx8IFtdO1xyXG4gICAgXHJcbiAgICB0aGlzLm1lbnRpb25zID0gKGRhdGEgYXMgYW55KS5tZW50aW9ucyB8fCB7fTtcclxuICAgIHRoaXMudXNlcl9pZCA9IChkYXRhIGFzIGFueSkudXNlcl9pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgY3JlYXRpb24gZGF0ZVxyXG4gICAqL1xyXG4gIGdldCBjcmVhdGVkQXQoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jcmVhdGVkVGltZXN0YW1wKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZWRpdCBkYXRlXHJcbiAgICovXHJcbiAgZ2V0IGVkaXRlZEF0KCk6IERhdGUgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRlZFRpbWVzdGFtcCA/IG5ldyBEYXRlKHRoaXMuZWRpdGVkVGltZXN0YW1wKSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXBseSB0byB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyByZXBseShvcHRpb25zOiBzdHJpbmcgfCBNZXNzYWdlQ3JlYXRlT3B0aW9ucyk6IFByb21pc2U8TWVzc2FnZT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IG9wdGlvbnMgOiBvcHRpb25zLmNvbnRlbnQ7XHJcbiAgICBjb25zdCBlbWJlZHMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiByZXNvbHZlRW1iZWRzKG9wdGlvbnMuZW1iZWRzKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiBvcHRpb25zLmNvbXBvbmVudHM7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmNyZWF0ZU1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwge1xyXG4gICAgICBjb250ZW50LFxyXG4gICAgICBlbWJlZHMsXHJcbiAgICAgIGNvbXBvbmVudHMsXHJcbiAgICAgIG1lc3NhZ2VfcmVmZXJlbmNlOiB7IG1lc3NhZ2VfaWQ6IHRoaXMuaWQgfVxyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIHJldHVybiBuZXcgTWVzc2FnZSh0aGlzLmNsaWVudCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZGl0IHRoaXMgbWVzc2FnZSAob25seSBpZiBhdXRob3IgaXMgdGhlIGJvdClcclxuICAgKi9cclxuICBhc3luYyBlZGl0KG9wdGlvbnM6IHN0cmluZyB8IE1lc3NhZ2VDcmVhdGVPcHRpb25zKTogUHJvbWlzZTxNZXNzYWdlPiB7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnID8gb3B0aW9ucyA6IG9wdGlvbnMuY29udGVudDtcclxuICAgIGNvbnN0IGVtYmVkcyA9IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IHVuZGVmaW5lZCA6IHJlc29sdmVFbWJlZHMob3B0aW9ucy5lbWJlZHMpO1xyXG4gICAgY29uc3QgY29tcG9uZW50cyA9IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IHVuZGVmaW5lZCA6IG9wdGlvbnMuY29tcG9uZW50cztcclxuICAgIFxyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QuZWRpdE1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwgdGhpcy5pZCwge1xyXG4gICAgICBjb250ZW50LFxyXG4gICAgICBlbWJlZHMsXHJcbiAgICAgIGNvbXBvbmVudHMsXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIG5ldyBNZXNzYWdlKHRoaXMuY2xpZW50LCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmRlbGV0ZU1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwgdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFjdCB0byB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyByZWFjdChlbW9qaTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmFkZFJlYWN0aW9uKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQsIGVtb2ppKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBpbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyBwaW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnBpbk1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwgdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnBpbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyB1bnBpbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QudW5waW5NZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgY29tcG9uZW50IGludGVyYWN0aW9uIGNvbGxlY3RvciBvbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBjcmVhdGVNZXNzYWdlQ29tcG9uZW50Q29sbGVjdG9yKG9wdGlvbnM/OiBPbWl0PEludGVyYWN0aW9uQ29sbGVjdG9yT3B0aW9ucywgJ21lc3NhZ2VJZCc+KTogSW50ZXJhY3Rpb25Db2xsZWN0b3Ige1xyXG4gICAgcmV0dXJuIG5ldyBJbnRlcmFjdGlvbkNvbGxlY3Rvcih0aGlzLmNsaWVudCwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBtZXNzYWdlSWQ6IHRoaXMuaWQsXHJcbiAgICAgIGNoYW5uZWxJZDogdGhpcy5jaGFubmVsSWQsXHJcbiAgICAgIGd1aWxkSWQ6IHRoaXMuZ3VpbGRJZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXdhaXQgY29tcG9uZW50IGludGVyYWN0aW9ucyBvbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhd2FpdE1lc3NhZ2VDb21wb25lbnQob3B0aW9ucz86IE9taXQ8SW50ZXJhY3Rpb25Db2xsZWN0b3JPcHRpb25zLCAnbWVzc2FnZUlkJyB8ICdtYXgnPik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBjb2xsZWN0b3IgPSB0aGlzLmNyZWF0ZU1lc3NhZ2VDb21wb25lbnRDb2xsZWN0b3IoeyAuLi5vcHRpb25zLCBtYXg6IDEgfSk7XHJcbiAgICAgIFxyXG4gICAgICBjb2xsZWN0b3Iub25jZSgnZW5kJywgKGNvbGxlY3RlZCwgcmVhc29uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmlyc3QgPSBjb2xsZWN0ZWQuZmlyc3QoKTtcclxuICAgICAgICBpZiAoZmlyc3QpIHtcclxuICAgICAgICAgIHJlc29sdmUoZmlyc3QpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKHJlYXNvbiB8fCAnTm8gaW50ZXJhY3Rpb24gcmVjZWl2ZWQnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0byBzdHJpbmdcclxuICAgKi9cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { APIUser } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a user
|
|
4
|
+
*/
|
|
5
|
+
export declare class User {
|
|
6
|
+
/** User ID */
|
|
7
|
+
readonly id: string;
|
|
8
|
+
/** Username */
|
|
9
|
+
username: string;
|
|
10
|
+
/** Display name */
|
|
11
|
+
displayName?: string;
|
|
12
|
+
/** Avatar URL */
|
|
13
|
+
avatarURL?: string;
|
|
14
|
+
/** Whether this is a bot */
|
|
15
|
+
bot: boolean;
|
|
16
|
+
constructor(data: APIUser);
|
|
17
|
+
/**
|
|
18
|
+
* Get the user's tag (username)
|
|
19
|
+
*/
|
|
20
|
+
get tag(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Get the default avatar URL
|
|
23
|
+
*/
|
|
24
|
+
get defaultAvatarURL(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Get the display avatar URL
|
|
27
|
+
*/
|
|
28
|
+
displayAvatarURL(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Convert to string (mention format)
|
|
31
|
+
*/
|
|
32
|
+
toString(): string;
|
|
33
|
+
/**
|
|
34
|
+
* Update user data
|
|
35
|
+
*/
|
|
36
|
+
_patch(data: Partial<APIUser>): void;
|
|
37
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.User = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Represents a user
|
|
6
|
+
*/
|
|
7
|
+
class User {
|
|
8
|
+
/** User ID */
|
|
9
|
+
id;
|
|
10
|
+
/** Username */
|
|
11
|
+
username;
|
|
12
|
+
/** Display name */
|
|
13
|
+
displayName;
|
|
14
|
+
/** Avatar URL */
|
|
15
|
+
avatarURL;
|
|
16
|
+
/** Whether this is a bot */
|
|
17
|
+
bot;
|
|
18
|
+
constructor(data) {
|
|
19
|
+
// Handle both string and number IDs (snowflake precision issue)
|
|
20
|
+
this.id = String(data.id);
|
|
21
|
+
this.username = data.username || `User_${this.id}`;
|
|
22
|
+
this.displayName = data.display_name;
|
|
23
|
+
this.avatarURL = data.avatar_url;
|
|
24
|
+
this.bot = data.bot ?? false;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get the user's tag (username)
|
|
28
|
+
*/
|
|
29
|
+
get tag() {
|
|
30
|
+
return this.username;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get the default avatar URL
|
|
34
|
+
*/
|
|
35
|
+
get defaultAvatarURL() {
|
|
36
|
+
return `https://cdn.jubbio.com/embed/avatars/${parseInt(this.id) % 5}.png`;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get the display avatar URL
|
|
40
|
+
*/
|
|
41
|
+
displayAvatarURL() {
|
|
42
|
+
return this.avatarURL || this.defaultAvatarURL;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Convert to string (mention format)
|
|
46
|
+
*/
|
|
47
|
+
toString() {
|
|
48
|
+
return `<@${this.id}>`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Update user data
|
|
52
|
+
*/
|
|
53
|
+
_patch(data) {
|
|
54
|
+
if (data.username !== undefined)
|
|
55
|
+
this.username = data.username;
|
|
56
|
+
if (data.display_name !== undefined)
|
|
57
|
+
this.displayName = data.display_name;
|
|
58
|
+
if (data.avatar_url !== undefined)
|
|
59
|
+
this.avatarURL = data.avatar_url;
|
|
60
|
+
if (data.bot !== undefined)
|
|
61
|
+
this.bot = data.bot;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.User = User;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHJ1Y3R1cmVzL1VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7O0dBRUc7QUFDSCxNQUFhLElBQUk7SUFDZixjQUFjO0lBQ0UsRUFBRSxDQUFTO0lBRTNCLGVBQWU7SUFDUixRQUFRLENBQVM7SUFFeEIsbUJBQW1CO0lBQ1osV0FBVyxDQUFVO0lBRTVCLGlCQUFpQjtJQUNWLFNBQVMsQ0FBVTtJQUUxQiw0QkFBNEI7SUFDckIsR0FBRyxDQUFVO0lBRXBCLFlBQVksSUFBYTtRQUN2QixnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sd0NBQXdDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsSUFBc0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDcEUsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBOURELG9CQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSVVzZXIgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIHVzZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVc2VyIHtcclxuICAvKiogVXNlciBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBVc2VybmFtZSAqL1xyXG4gIHB1YmxpYyB1c2VybmFtZTogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cclxuICBwdWJsaWMgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIEF2YXRhciBVUkwgKi9cclxuICBwdWJsaWMgYXZhdGFyVVJMPzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgYSBib3QgKi9cclxuICBwdWJsaWMgYm90OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBBUElVc2VyKSB7XHJcbiAgICAvLyBIYW5kbGUgYm90aCBzdHJpbmcgYW5kIG51bWJlciBJRHMgKHNub3dmbGFrZSBwcmVjaXNpb24gaXNzdWUpXHJcbiAgICB0aGlzLmlkID0gU3RyaW5nKGRhdGEuaWQpO1xyXG4gICAgdGhpcy51c2VybmFtZSA9IGRhdGEudXNlcm5hbWUgfHwgYFVzZXJfJHt0aGlzLmlkfWA7XHJcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gZGF0YS5kaXNwbGF5X25hbWU7XHJcbiAgICB0aGlzLmF2YXRhclVSTCA9IGRhdGEuYXZhdGFyX3VybDtcclxuICAgIHRoaXMuYm90ID0gZGF0YS5ib3QgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHVzZXIncyB0YWcgKHVzZXJuYW1lKVxyXG4gICAqL1xyXG4gIGdldCB0YWcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJuYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBkZWZhdWx0IGF2YXRhciBVUkxcclxuICAgKi9cclxuICBnZXQgZGVmYXVsdEF2YXRhclVSTCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL2Nkbi5qdWJiaW8uY29tL2VtYmVkL2F2YXRhcnMvJHtwYXJzZUludCh0aGlzLmlkKSAlIDV9LnBuZ2A7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGRpc3BsYXkgYXZhdGFyIFVSTFxyXG4gICAqL1xyXG4gIGRpc3BsYXlBdmF0YXJVUkwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2YXRhclVSTCB8fCB0aGlzLmRlZmF1bHRBdmF0YXJVUkw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IHRvIHN0cmluZyAobWVudGlvbiBmb3JtYXQpXHJcbiAgICovXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgPEAke3RoaXMuaWR9PmA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdXNlciBkYXRhXHJcbiAgICovXHJcbiAgX3BhdGNoKGRhdGE6IFBhcnRpYWw8QVBJVXNlcj4pOiB2b2lkIHtcclxuICAgIGlmIChkYXRhLnVzZXJuYW1lICE9PSB1bmRlZmluZWQpIHRoaXMudXNlcm5hbWUgPSBkYXRhLnVzZXJuYW1lO1xyXG4gICAgaWYgKGRhdGEuZGlzcGxheV9uYW1lICE9PSB1bmRlZmluZWQpIHRoaXMuZGlzcGxheU5hbWUgPSBkYXRhLmRpc3BsYXlfbmFtZTtcclxuICAgIGlmIChkYXRhLmF2YXRhcl91cmwgIT09IHVuZGVmaW5lZCkgdGhpcy5hdmF0YXJVUkwgPSBkYXRhLmF2YXRhcl91cmw7XHJcbiAgICBpZiAoZGF0YS5ib3QgIT09IHVuZGVmaW5lZCkgdGhpcy5ib3QgPSBkYXRhLmJvdDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./User"), exports);
|
|
18
|
+
__exportStar(require("./Guild"), exports);
|
|
19
|
+
__exportStar(require("./Channel"), exports);
|
|
20
|
+
__exportStar(require("./Message"), exports);
|
|
21
|
+
__exportStar(require("./Interaction"), exports);
|
|
22
|
+
__exportStar(require("./GuildMember"), exports);
|
|
23
|
+
__exportStar(require("./Collection"), exports);
|
|
24
|
+
// Collector is exported from utils
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RydWN0dXJlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDBDQUF3QjtBQUN4Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5QixnREFBOEI7QUFDOUIsK0NBQTZCO0FBQzdCLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vVXNlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vR3VpbGQnO1xyXG5leHBvcnQgKiBmcm9tICcuL0NoYW5uZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL01lc3NhZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL0ludGVyYWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9HdWlsZE1lbWJlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vQ29sbGVjdGlvbic7XHJcbi8vIENvbGxlY3RvciBpcyBleHBvcnRlZCBmcm9tIHV0aWxzXHJcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './structures/index';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Re-export all structures
|
|
18
|
+
__exportStar(require("./structures/index"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBMkI7QUFDM0IscURBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGFsbCBzdHJ1Y3R1cmVzXHJcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlcy9pbmRleCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { GatewayIntentBits, InteractionType, ApplicationCommandType, ChannelType } from './enums';
|
|
2
|
+
/**
|
|
3
|
+
* Client options
|
|
4
|
+
*/
|
|
5
|
+
export interface ClientOptions {
|
|
6
|
+
/** Gateway intents */
|
|
7
|
+
intents: GatewayIntentBits[] | number;
|
|
8
|
+
/** Shard configuration [shard_id, num_shards] */
|
|
9
|
+
shards?: [number, number];
|
|
10
|
+
/** Gateway URL override */
|
|
11
|
+
gatewayUrl?: string;
|
|
12
|
+
/** API URL override */
|
|
13
|
+
apiUrl?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* User structure
|
|
17
|
+
*/
|
|
18
|
+
export interface APIUser {
|
|
19
|
+
id: string;
|
|
20
|
+
username: string;
|
|
21
|
+
display_name?: string;
|
|
22
|
+
avatar_url?: string;
|
|
23
|
+
bot?: boolean;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Guild structure
|
|
27
|
+
*/
|
|
28
|
+
export interface APIGuild {
|
|
29
|
+
id: string;
|
|
30
|
+
name: string;
|
|
31
|
+
icon?: string;
|
|
32
|
+
owner_id: string;
|
|
33
|
+
unavailable?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Channel structure
|
|
37
|
+
*/
|
|
38
|
+
export interface APIChannel {
|
|
39
|
+
id: string;
|
|
40
|
+
type: ChannelType;
|
|
41
|
+
guild_id?: string;
|
|
42
|
+
name?: string;
|
|
43
|
+
topic?: string;
|
|
44
|
+
position?: number;
|
|
45
|
+
parent_id?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Message structure
|
|
49
|
+
*/
|
|
50
|
+
export interface APIMessage {
|
|
51
|
+
id: string;
|
|
52
|
+
channel_id: string;
|
|
53
|
+
guild_id?: string;
|
|
54
|
+
author: APIUser;
|
|
55
|
+
user_id?: number;
|
|
56
|
+
content: string | null;
|
|
57
|
+
timestamp: string;
|
|
58
|
+
edited_timestamp?: string;
|
|
59
|
+
attachments?: APIAttachment[];
|
|
60
|
+
embeds?: APIEmbed[];
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Attachment structure
|
|
64
|
+
*/
|
|
65
|
+
export interface APIAttachment {
|
|
66
|
+
id: string;
|
|
67
|
+
filename: string;
|
|
68
|
+
size: number;
|
|
69
|
+
url: string;
|
|
70
|
+
proxy_url?: string;
|
|
71
|
+
content_type?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Embed structure
|
|
75
|
+
*/
|
|
76
|
+
export interface APIEmbed {
|
|
77
|
+
title?: string;
|
|
78
|
+
description?: string;
|
|
79
|
+
url?: string;
|
|
80
|
+
timestamp?: string;
|
|
81
|
+
color?: number;
|
|
82
|
+
footer?: {
|
|
83
|
+
text: string;
|
|
84
|
+
icon_url?: string;
|
|
85
|
+
};
|
|
86
|
+
image?: {
|
|
87
|
+
url: string;
|
|
88
|
+
};
|
|
89
|
+
thumbnail?: {
|
|
90
|
+
url: string;
|
|
91
|
+
};
|
|
92
|
+
author?: {
|
|
93
|
+
name: string;
|
|
94
|
+
url?: string;
|
|
95
|
+
icon_url?: string;
|
|
96
|
+
};
|
|
97
|
+
fields?: {
|
|
98
|
+
name: string;
|
|
99
|
+
value: string;
|
|
100
|
+
inline?: boolean;
|
|
101
|
+
}[];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Interaction structure
|
|
105
|
+
*/
|
|
106
|
+
export interface APIInteraction {
|
|
107
|
+
id: string;
|
|
108
|
+
application_id: string;
|
|
109
|
+
type: InteractionType;
|
|
110
|
+
data?: APIInteractionData;
|
|
111
|
+
guild_id?: string;
|
|
112
|
+
channel_id?: string;
|
|
113
|
+
member?: APIGuildMember;
|
|
114
|
+
user?: APIUser;
|
|
115
|
+
token: string;
|
|
116
|
+
version: number;
|
|
117
|
+
message?: APIMessage;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Interaction data
|
|
121
|
+
*/
|
|
122
|
+
export interface APIInteractionData {
|
|
123
|
+
id?: string;
|
|
124
|
+
name?: string;
|
|
125
|
+
type?: ApplicationCommandType;
|
|
126
|
+
options?: APIInteractionOption[];
|
|
127
|
+
custom_id?: string;
|
|
128
|
+
component_type?: number;
|
|
129
|
+
values?: string[];
|
|
130
|
+
target_id?: string;
|
|
131
|
+
resolved?: APIInteractionResolved;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Interaction option
|
|
135
|
+
*/
|
|
136
|
+
export interface APIInteractionOption {
|
|
137
|
+
name: string;
|
|
138
|
+
type: number;
|
|
139
|
+
value?: string | number | boolean;
|
|
140
|
+
options?: APIInteractionOption[];
|
|
141
|
+
focused?: boolean;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Interaction resolved data
|
|
145
|
+
*/
|
|
146
|
+
export interface APIInteractionResolved {
|
|
147
|
+
users?: Record<string, APIUser>;
|
|
148
|
+
members?: Record<string, APIGuildMember>;
|
|
149
|
+
roles?: Record<string, APIRole>;
|
|
150
|
+
channels?: Record<string, APIChannel>;
|
|
151
|
+
messages?: Record<string, APIMessage>;
|
|
152
|
+
attachments?: Record<string, APIAttachment>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Guild member structure
|
|
156
|
+
*/
|
|
157
|
+
export interface APIGuildMember {
|
|
158
|
+
user?: APIUser;
|
|
159
|
+
nick?: string;
|
|
160
|
+
avatar?: string;
|
|
161
|
+
roles: string[];
|
|
162
|
+
joined_at: string;
|
|
163
|
+
deaf?: boolean;
|
|
164
|
+
mute?: boolean;
|
|
165
|
+
permissions?: string;
|
|
166
|
+
voice?: {
|
|
167
|
+
channel_id?: string;
|
|
168
|
+
self_mute?: boolean;
|
|
169
|
+
self_deaf?: boolean;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Role structure
|
|
174
|
+
*/
|
|
175
|
+
export interface APIRole {
|
|
176
|
+
id: string;
|
|
177
|
+
name: string;
|
|
178
|
+
color: number;
|
|
179
|
+
position: number;
|
|
180
|
+
permissions: string;
|
|
181
|
+
mentionable: boolean;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Voice state structure
|
|
185
|
+
*/
|
|
186
|
+
export interface APIVoiceState {
|
|
187
|
+
guild_id?: string;
|
|
188
|
+
channel_id?: string;
|
|
189
|
+
user_id: string;
|
|
190
|
+
session_id?: string;
|
|
191
|
+
self_mute: boolean;
|
|
192
|
+
self_deaf: boolean;
|
|
193
|
+
mute?: boolean;
|
|
194
|
+
deaf?: boolean;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Voice server update
|
|
198
|
+
*/
|
|
199
|
+
export interface APIVoiceServerUpdate {
|
|
200
|
+
token: string;
|
|
201
|
+
guild_id: string;
|
|
202
|
+
endpoint: string;
|
|
203
|
+
room?: string;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Application command structure
|
|
207
|
+
*/
|
|
208
|
+
export interface APIApplicationCommand {
|
|
209
|
+
name: string;
|
|
210
|
+
description: string;
|
|
211
|
+
type?: ApplicationCommandType;
|
|
212
|
+
options?: APIApplicationCommandOption[];
|
|
213
|
+
default_permission?: boolean;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Application command option
|
|
217
|
+
*/
|
|
218
|
+
export interface APIApplicationCommandOption {
|
|
219
|
+
name: string;
|
|
220
|
+
description: string;
|
|
221
|
+
type: number;
|
|
222
|
+
required?: boolean;
|
|
223
|
+
choices?: {
|
|
224
|
+
name: string;
|
|
225
|
+
value: string | number;
|
|
226
|
+
}[];
|
|
227
|
+
options?: APIApplicationCommandOption[];
|
|
228
|
+
autocomplete?: boolean;
|
|
229
|
+
min_value?: number;
|
|
230
|
+
max_value?: number;
|
|
231
|
+
min_length?: number;
|
|
232
|
+
max_length?: number;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Gateway payload
|
|
236
|
+
*/
|
|
237
|
+
export interface GatewayPayload {
|
|
238
|
+
op: number;
|
|
239
|
+
d?: any;
|
|
240
|
+
s?: number;
|
|
241
|
+
t?: string;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Ready event data
|
|
245
|
+
*/
|
|
246
|
+
export interface ReadyEventData {
|
|
247
|
+
v: number;
|
|
248
|
+
user: APIUser;
|
|
249
|
+
guilds: APIGuild[];
|
|
250
|
+
session_id: string;
|
|
251
|
+
shard?: [number, number];
|
|
252
|
+
application: {
|
|
253
|
+
id: string;
|
|
254
|
+
};
|
|
255
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# 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==
|