@jubbio/core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/Client.d.ts +147 -0
- package/dist/Client.js +471 -0
- package/dist/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/builders/ActionRowBuilder.js +68 -0
- package/dist/builders/ButtonBuilder.d.ts +77 -0
- package/dist/builders/ButtonBuilder.js +96 -0
- package/dist/builders/EmbedBuilder.d.ts +157 -0
- package/dist/builders/EmbedBuilder.js +199 -0
- package/dist/builders/ModalBuilder.d.ts +122 -0
- package/dist/builders/ModalBuilder.js +162 -0
- package/dist/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/builders/SelectMenuBuilder.js +165 -0
- package/dist/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/builders/SlashCommandBuilder.js +324 -0
- package/dist/builders/index.d.ts +9 -0
- package/dist/builders/index.js +26 -0
- package/dist/enums.d.ts +196 -0
- package/dist/enums.js +216 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +128 -0
- package/dist/managers/BaseManager.d.ts +69 -0
- package/dist/managers/BaseManager.js +106 -0
- package/dist/managers/ChannelManager.d.ts +98 -0
- package/dist/managers/ChannelManager.js +209 -0
- package/dist/managers/GuildMemberManager.d.ts +74 -0
- package/dist/managers/GuildMemberManager.js +156 -0
- package/dist/managers/RoleManager.d.ts +84 -0
- package/dist/managers/RoleManager.js +207 -0
- package/dist/managers/index.d.ts +7 -0
- package/dist/managers/index.js +24 -0
- package/dist/rest/REST.d.ts +483 -0
- package/dist/rest/REST.js +805 -0
- package/dist/rest/index.d.ts +1 -0
- package/dist/rest/index.js +18 -0
- package/dist/sharding/ShardingManager.d.ts +179 -0
- package/dist/sharding/ShardingManager.js +375 -0
- package/dist/sharding/index.d.ts +4 -0
- package/dist/sharding/index.js +21 -0
- package/dist/structures/Channel.d.ts +120 -0
- package/dist/structures/Channel.js +224 -0
- package/dist/structures/Collection.d.ts +53 -0
- package/dist/structures/Collection.js +115 -0
- package/dist/structures/Guild.d.ts +59 -0
- package/dist/structures/Guild.js +90 -0
- package/dist/structures/GuildMember.d.ts +130 -0
- package/dist/structures/GuildMember.js +208 -0
- package/dist/structures/Interaction.d.ts +224 -0
- package/dist/structures/Interaction.js +404 -0
- package/dist/structures/Message.d.ts +93 -0
- package/dist/structures/Message.js +145 -0
- package/dist/structures/User.d.ts +37 -0
- package/dist/structures/User.js +65 -0
- package/dist/structures/index.d.ts +7 -0
- package/dist/structures/index.js +25 -0
- package/dist/structures.d.ts +1 -0
- package/dist/structures.js +19 -0
- package/dist/types.d.ts +255 -0
- package/dist/types.js +3 -0
- package/dist/utils/BitField.d.ts +66 -0
- package/dist/utils/BitField.js +138 -0
- package/dist/utils/Collection.d.ts +116 -0
- package/dist/utils/Collection.js +265 -0
- package/dist/utils/Collector.d.ts +152 -0
- package/dist/utils/Collector.js +314 -0
- package/dist/utils/DataResolver.d.ts +61 -0
- package/dist/utils/DataResolver.js +146 -0
- package/dist/utils/Formatters.d.ts +145 -0
- package/dist/utils/Formatters.js +213 -0
- package/dist/utils/IntentsBitField.d.ts +85 -0
- package/dist/utils/IntentsBitField.js +99 -0
- package/dist/utils/Partials.d.ts +105 -0
- package/dist/utils/Partials.js +149 -0
- package/dist/utils/PermissionsBitField.d.ts +118 -0
- package/dist/utils/PermissionsBitField.js +145 -0
- package/dist/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/utils/SnowflakeUtil.js +93 -0
- package/dist/utils/Sweepers.d.ts +127 -0
- package/dist/utils/Sweepers.js +270 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +30 -0
- package/package.json +37 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ActionRowBuilder for creating component rows
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ActionRowBuilder = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* A builder for creating action rows
|
|
9
|
+
*/
|
|
10
|
+
class ActionRowBuilder {
|
|
11
|
+
data;
|
|
12
|
+
constructor(data = {}) {
|
|
13
|
+
this.data = {
|
|
14
|
+
type: 1,
|
|
15
|
+
components: data.components || []
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Adds components to this action row
|
|
20
|
+
* @param components The components to add
|
|
21
|
+
*/
|
|
22
|
+
addComponents(...components) {
|
|
23
|
+
for (const component of components) {
|
|
24
|
+
if ('toJSON' in component && typeof component.toJSON === 'function') {
|
|
25
|
+
this.data.components.push(component.toJSON());
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.data.components.push(component);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Sets the components of this action row
|
|
35
|
+
* @param components The components to set
|
|
36
|
+
*/
|
|
37
|
+
setComponents(...components) {
|
|
38
|
+
this.data.components = [];
|
|
39
|
+
return this.addComponents(...components);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Removes, replaces, or inserts components
|
|
43
|
+
* @param index The index to start at
|
|
44
|
+
* @param deleteCount The number of components to remove
|
|
45
|
+
* @param components The components to insert
|
|
46
|
+
*/
|
|
47
|
+
spliceComponents(index, deleteCount, ...components) {
|
|
48
|
+
const resolved = components.map(c => 'toJSON' in c && typeof c.toJSON === 'function' ? c.toJSON() : c);
|
|
49
|
+
this.data.components.splice(index, deleteCount, ...resolved);
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the JSON representation of this action row
|
|
54
|
+
*/
|
|
55
|
+
toJSON() {
|
|
56
|
+
return { ...this.data };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Creates a new action row builder from existing data
|
|
60
|
+
* @param other The action row data to copy
|
|
61
|
+
*/
|
|
62
|
+
static from(other) {
|
|
63
|
+
return new ActionRowBuilder(other instanceof ActionRowBuilder ? other.data : other);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ActionRowBuilder = ActionRowBuilder;
|
|
67
|
+
exports.default = ActionRowBuilder;
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWN0aW9uUm93QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVycy9BY3Rpb25Sb3dCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBWUg7O0dBRUc7QUFDSCxNQUFhLGdCQUFnQjtJQUNYLElBQUksQ0FBK0I7SUFFbkQsWUFBWSxPQUE4QixFQUFFO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVixJQUFJLEVBQUUsQ0FBQztZQUNQLFVBQVUsRUFBRyxJQUFJLENBQUMsVUFBa0IsSUFBSSxFQUFFO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLEdBQUcsVUFBbUM7UUFDbEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsSUFBSSxTQUFTLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNwRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFjLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWEsQ0FBQyxHQUFHLFVBQW1DO1FBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxHQUFHLFVBQW1DO1FBQ3pGLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDbEMsUUFBUSxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQU0sQ0FDdEUsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBa0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBa0MsS0FBa0Q7UUFDN0YsT0FBTyxJQUFJLGdCQUFnQixDQUFJLEtBQUssWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekYsQ0FBQztDQUNGO0FBOURELDRDQThEQztBQUVELGtCQUFlLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEFjdGlvblJvd0J1aWxkZXIgZm9yIGNyZWF0aW5nIGNvbXBvbmVudCByb3dzXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQVBJQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9CdXR0b25CdWlsZGVyJztcclxuaW1wb3J0IHsgQVBJU2VsZWN0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vU2VsZWN0TWVudUJ1aWxkZXInO1xyXG5cclxuZXhwb3J0IHR5cGUgQVBJQWN0aW9uUm93Q29tcG9uZW50ID0gQVBJQnV0dG9uQ29tcG9uZW50IHwgQVBJU2VsZWN0TWVudUNvbXBvbmVudDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQWN0aW9uUm93IHtcclxuICB0eXBlOiAxO1xyXG4gIGNvbXBvbmVudHM6IEFQSUFjdGlvblJvd0NvbXBvbmVudFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBhY3Rpb24gcm93c1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFjdGlvblJvd0J1aWxkZXI8VCBleHRlbmRzIEFQSUFjdGlvblJvd0NvbXBvbmVudCA9IEFQSUFjdGlvblJvd0NvbXBvbmVudD4ge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiB7IHR5cGU6IDE7IGNvbXBvbmVudHM6IFRbXSB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSUFjdGlvblJvdz4gPSB7fSkge1xyXG4gICAgdGhpcy5kYXRhID0geyBcclxuICAgICAgdHlwZTogMSwgXHJcbiAgICAgIGNvbXBvbmVudHM6IChkYXRhLmNvbXBvbmVudHMgYXMgVFtdKSB8fCBbXSBcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGNvbXBvbmVudHMgdG8gdGhpcyBhY3Rpb24gcm93XHJcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgVGhlIGNvbXBvbmVudHMgdG8gYWRkXHJcbiAgICovXHJcbiAgYWRkQ29tcG9uZW50cyguLi5jb21wb25lbnRzOiAoVCB8IHsgdG9KU09OKCk6IFQgfSlbXSk6IHRoaXMge1xyXG4gICAgZm9yIChjb25zdCBjb21wb25lbnQgb2YgY29tcG9uZW50cykge1xyXG4gICAgICBpZiAoJ3RvSlNPTicgaW4gY29tcG9uZW50ICYmIHR5cGVvZiBjb21wb25lbnQudG9KU09OID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLmNvbXBvbmVudHMucHVzaChjb21wb25lbnQudG9KU09OKCkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0YS5jb21wb25lbnRzLnB1c2goY29tcG9uZW50IGFzIFQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGNvbXBvbmVudHMgb2YgdGhpcyBhY3Rpb24gcm93XHJcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgVGhlIGNvbXBvbmVudHMgdG8gc2V0XHJcbiAgICovXHJcbiAgc2V0Q29tcG9uZW50cyguLi5jb21wb25lbnRzOiAoVCB8IHsgdG9KU09OKCk6IFQgfSlbXSk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmNvbXBvbmVudHMgPSBbXTtcclxuICAgIHJldHVybiB0aGlzLmFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmVzLCByZXBsYWNlcywgb3IgaW5zZXJ0cyBjb21wb25lbnRzXHJcbiAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCB0byBzdGFydCBhdFxyXG4gICAqIEBwYXJhbSBkZWxldGVDb3VudCBUaGUgbnVtYmVyIG9mIGNvbXBvbmVudHMgdG8gcmVtb3ZlXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgVGhlIGNvbXBvbmVudHMgdG8gaW5zZXJ0XHJcbiAgICovXHJcbiAgc3BsaWNlQ29tcG9uZW50cyhpbmRleDogbnVtYmVyLCBkZWxldGVDb3VudDogbnVtYmVyLCAuLi5jb21wb25lbnRzOiAoVCB8IHsgdG9KU09OKCk6IFQgfSlbXSk6IHRoaXMge1xyXG4gICAgY29uc3QgcmVzb2x2ZWQgPSBjb21wb25lbnRzLm1hcChjID0+IFxyXG4gICAgICAndG9KU09OJyBpbiBjICYmIHR5cGVvZiBjLnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJyA/IGMudG9KU09OKCkgOiBjIGFzIFRcclxuICAgICk7XHJcbiAgICB0aGlzLmRhdGEuY29tcG9uZW50cy5zcGxpY2UoaW5kZXgsIGRlbGV0ZUNvdW50LCAuLi5yZXNvbHZlZCk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBhY3Rpb24gcm93XHJcbiAgICovXHJcbiAgdG9KU09OKCk6IEFQSUFjdGlvblJvdyB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElBY3Rpb25Sb3c7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGFjdGlvbiByb3cgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIGFjdGlvbiByb3cgZGF0YSB0byBjb3B5XHJcbiAgICovXHJcbiAgc3RhdGljIGZyb208VCBleHRlbmRzIEFQSUFjdGlvblJvd0NvbXBvbmVudD4ob3RoZXI6IFBhcnRpYWw8QVBJQWN0aW9uUm93PiB8IEFjdGlvblJvd0J1aWxkZXI8VD4pOiBBY3Rpb25Sb3dCdWlsZGVyPFQ+IHtcclxuICAgIHJldHVybiBuZXcgQWN0aW9uUm93QnVpbGRlcjxUPihvdGhlciBpbnN0YW5jZW9mIEFjdGlvblJvd0J1aWxkZXIgPyBvdGhlci5kYXRhIDogb3RoZXIpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgQWN0aW9uUm93QnVpbGRlcjtcclxuIl19
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ButtonBuilder for creating interactive buttons
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Button styles
|
|
6
|
+
*/
|
|
7
|
+
export declare enum ButtonStyle {
|
|
8
|
+
Primary = 1,
|
|
9
|
+
Secondary = 2,
|
|
10
|
+
Success = 3,
|
|
11
|
+
Danger = 4,
|
|
12
|
+
Link = 5
|
|
13
|
+
}
|
|
14
|
+
export interface APIButtonComponent {
|
|
15
|
+
type: 2;
|
|
16
|
+
style: ButtonStyle;
|
|
17
|
+
label?: string;
|
|
18
|
+
emoji?: {
|
|
19
|
+
id?: string;
|
|
20
|
+
name?: string;
|
|
21
|
+
animated?: boolean;
|
|
22
|
+
};
|
|
23
|
+
custom_id?: string;
|
|
24
|
+
url?: string;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A builder for creating buttons
|
|
29
|
+
*/
|
|
30
|
+
export declare class ButtonBuilder {
|
|
31
|
+
readonly data: Partial<APIButtonComponent>;
|
|
32
|
+
constructor(data?: Partial<APIButtonComponent>);
|
|
33
|
+
/**
|
|
34
|
+
* Sets the custom ID of this button
|
|
35
|
+
* @param customId The custom ID
|
|
36
|
+
*/
|
|
37
|
+
setCustomId(customId: string): this;
|
|
38
|
+
/**
|
|
39
|
+
* Sets the label of this button
|
|
40
|
+
* @param label The label
|
|
41
|
+
*/
|
|
42
|
+
setLabel(label: string): this;
|
|
43
|
+
/**
|
|
44
|
+
* Sets the style of this button
|
|
45
|
+
* @param style The style
|
|
46
|
+
*/
|
|
47
|
+
setStyle(style: ButtonStyle): this;
|
|
48
|
+
/**
|
|
49
|
+
* Sets the emoji of this button
|
|
50
|
+
* @param emoji The emoji
|
|
51
|
+
*/
|
|
52
|
+
setEmoji(emoji: {
|
|
53
|
+
id?: string;
|
|
54
|
+
name?: string;
|
|
55
|
+
animated?: boolean;
|
|
56
|
+
} | string): this;
|
|
57
|
+
/**
|
|
58
|
+
* Sets the URL of this button (only for Link style)
|
|
59
|
+
* @param url The URL
|
|
60
|
+
*/
|
|
61
|
+
setURL(url: string): this;
|
|
62
|
+
/**
|
|
63
|
+
* Sets whether this button is disabled
|
|
64
|
+
* @param disabled Whether the button is disabled
|
|
65
|
+
*/
|
|
66
|
+
setDisabled(disabled?: boolean): this;
|
|
67
|
+
/**
|
|
68
|
+
* Returns the JSON representation of this button
|
|
69
|
+
*/
|
|
70
|
+
toJSON(): APIButtonComponent;
|
|
71
|
+
/**
|
|
72
|
+
* Creates a new button builder from existing data
|
|
73
|
+
* @param other The button data to copy
|
|
74
|
+
*/
|
|
75
|
+
static from(other: Partial<APIButtonComponent> | ButtonBuilder): ButtonBuilder;
|
|
76
|
+
}
|
|
77
|
+
export default ButtonBuilder;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ButtonBuilder for creating interactive buttons
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ButtonBuilder = exports.ButtonStyle = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Button styles
|
|
9
|
+
*/
|
|
10
|
+
var ButtonStyle;
|
|
11
|
+
(function (ButtonStyle) {
|
|
12
|
+
ButtonStyle[ButtonStyle["Primary"] = 1] = "Primary";
|
|
13
|
+
ButtonStyle[ButtonStyle["Secondary"] = 2] = "Secondary";
|
|
14
|
+
ButtonStyle[ButtonStyle["Success"] = 3] = "Success";
|
|
15
|
+
ButtonStyle[ButtonStyle["Danger"] = 4] = "Danger";
|
|
16
|
+
ButtonStyle[ButtonStyle["Link"] = 5] = "Link";
|
|
17
|
+
})(ButtonStyle || (exports.ButtonStyle = ButtonStyle = {}));
|
|
18
|
+
/**
|
|
19
|
+
* A builder for creating buttons
|
|
20
|
+
*/
|
|
21
|
+
class ButtonBuilder {
|
|
22
|
+
data;
|
|
23
|
+
constructor(data = {}) {
|
|
24
|
+
this.data = { type: 2, ...data };
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Sets the custom ID of this button
|
|
28
|
+
* @param customId The custom ID
|
|
29
|
+
*/
|
|
30
|
+
setCustomId(customId) {
|
|
31
|
+
this.data.custom_id = customId;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sets the label of this button
|
|
36
|
+
* @param label The label
|
|
37
|
+
*/
|
|
38
|
+
setLabel(label) {
|
|
39
|
+
this.data.label = label;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sets the style of this button
|
|
44
|
+
* @param style The style
|
|
45
|
+
*/
|
|
46
|
+
setStyle(style) {
|
|
47
|
+
this.data.style = style;
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Sets the emoji of this button
|
|
52
|
+
* @param emoji The emoji
|
|
53
|
+
*/
|
|
54
|
+
setEmoji(emoji) {
|
|
55
|
+
if (typeof emoji === 'string') {
|
|
56
|
+
// Unicode emoji
|
|
57
|
+
this.data.emoji = { name: emoji };
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
this.data.emoji = emoji;
|
|
61
|
+
}
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Sets the URL of this button (only for Link style)
|
|
66
|
+
* @param url The URL
|
|
67
|
+
*/
|
|
68
|
+
setURL(url) {
|
|
69
|
+
this.data.url = url;
|
|
70
|
+
return this;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Sets whether this button is disabled
|
|
74
|
+
* @param disabled Whether the button is disabled
|
|
75
|
+
*/
|
|
76
|
+
setDisabled(disabled = true) {
|
|
77
|
+
this.data.disabled = disabled;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns the JSON representation of this button
|
|
82
|
+
*/
|
|
83
|
+
toJSON() {
|
|
84
|
+
return { ...this.data };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Creates a new button builder from existing data
|
|
88
|
+
* @param other The button data to copy
|
|
89
|
+
*/
|
|
90
|
+
static from(other) {
|
|
91
|
+
return new ButtonBuilder(other instanceof ButtonBuilder ? other.data : other);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.ButtonBuilder = ButtonBuilder;
|
|
95
|
+
exports.default = ButtonBuilder;
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnV0dG9uQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVycy9CdXR0b25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBRUg7O0dBRUc7QUFDSCxJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDckIsbURBQVcsQ0FBQTtJQUNYLHVEQUFhLENBQUE7SUFDYixtREFBVyxDQUFBO0lBQ1gsaURBQVUsQ0FBQTtJQUNWLDZDQUFRLENBQUE7QUFDVixDQUFDLEVBTlcsV0FBVywyQkFBWCxXQUFXLFFBTXRCO0FBWUQ7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDUixJQUFJLENBQThCO0lBRWxELFlBQVksT0FBb0MsRUFBRTtRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsUUFBZ0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBa0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFrRTtRQUN6RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLGdCQUFnQjtZQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEdBQVc7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSTtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBd0IsQ0FBQztJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFrRDtRQUM1RCxPQUFPLElBQUksYUFBYSxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLENBQUM7Q0FDRjtBQWhGRCxzQ0FnRkM7QUFFRCxrQkFBZSxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQnV0dG9uQnVpbGRlciBmb3IgY3JlYXRpbmcgaW50ZXJhY3RpdmUgYnV0dG9uc1xyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBCdXR0b24gc3R5bGVzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBCdXR0b25TdHlsZSB7XHJcbiAgUHJpbWFyeSA9IDEsXHJcbiAgU2Vjb25kYXJ5ID0gMixcclxuICBTdWNjZXNzID0gMyxcclxuICBEYW5nZXIgPSA0LFxyXG4gIExpbmsgPSA1LFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgdHlwZTogMjtcclxuICBzdHlsZTogQnV0dG9uU3R5bGU7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgZW1vamk/OiB7IGlkPzogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBhbmltYXRlZD86IGJvb2xlYW4gfTtcclxuICBjdXN0b21faWQ/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgYnVpbGRlciBmb3IgY3JlYXRpbmcgYnV0dG9uc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSUJ1dHRvbkNvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJQnV0dG9uQ29tcG9uZW50PiA9IHt9KSB7XHJcbiAgICB0aGlzLmRhdGEgPSB7IHR5cGU6IDIsIC4uLmRhdGEgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIGJ1dHRvblxyXG4gICAqIEBwYXJhbSBjdXN0b21JZCBUaGUgY3VzdG9tIElEXHJcbiAgICovXHJcbiAgc2V0Q3VzdG9tSWQoY3VzdG9tSWQ6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmN1c3RvbV9pZCA9IGN1c3RvbUlkO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBsYWJlbCBvZiB0aGlzIGJ1dHRvblxyXG4gICAqIEBwYXJhbSBsYWJlbCBUaGUgbGFiZWxcclxuICAgKi9cclxuICBzZXRMYWJlbChsYWJlbDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEubGFiZWwgPSBsYWJlbDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgc3R5bGUgb2YgdGhpcyBidXR0b25cclxuICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlXHJcbiAgICovXHJcbiAgc2V0U3R5bGUoc3R5bGU6IEJ1dHRvblN0eWxlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuc3R5bGUgPSBzdHlsZTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZW1vamkgb2YgdGhpcyBidXR0b25cclxuICAgKiBAcGFyYW0gZW1vamkgVGhlIGVtb2ppXHJcbiAgICovXHJcbiAgc2V0RW1vamkoZW1vamk6IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9IHwgc3RyaW5nKTogdGhpcyB7XHJcbiAgICBpZiAodHlwZW9mIGVtb2ppID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBVbmljb2RlIGVtb2ppXHJcbiAgICAgIHRoaXMuZGF0YS5lbW9qaSA9IHsgbmFtZTogZW1vamkgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YS5lbW9qaSA9IGVtb2ppO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBVUkwgb2YgdGhpcyBidXR0b24gKG9ubHkgZm9yIExpbmsgc3R5bGUpXHJcbiAgICogQHBhcmFtIHVybCBUaGUgVVJMXHJcbiAgICovXHJcbiAgc2V0VVJMKHVybDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudXJsID0gdXJsO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBidXR0b24gaXMgZGlzYWJsZWRcclxuICAgKiBAcGFyYW0gZGlzYWJsZWQgV2hldGhlciB0aGUgYnV0dG9uIGlzIGRpc2FibGVkXHJcbiAgICovXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQgPSB0cnVlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGJ1dHRvblxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElCdXR0b25Db21wb25lbnQge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhIH0gYXMgQVBJQnV0dG9uQ29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBidXR0b24gYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIGJ1dHRvbiBkYXRhIHRvIGNvcHlcclxuICAgKi9cclxuICBzdGF0aWMgZnJvbShvdGhlcjogUGFydGlhbDxBUElCdXR0b25Db21wb25lbnQ+IHwgQnV0dG9uQnVpbGRlcik6IEJ1dHRvbkJ1aWxkZXIge1xyXG4gICAgcmV0dXJuIG5ldyBCdXR0b25CdWlsZGVyKG90aGVyIGluc3RhbmNlb2YgQnV0dG9uQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBCdXR0b25CdWlsZGVyO1xyXG4iXX0=
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EmbedBuilder for creating rich embeds
|
|
3
|
+
*/
|
|
4
|
+
export interface APIEmbedField {
|
|
5
|
+
name: string;
|
|
6
|
+
value: string;
|
|
7
|
+
inline?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface APIEmbedAuthor {
|
|
10
|
+
name: string;
|
|
11
|
+
url?: string;
|
|
12
|
+
icon_url?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface APIEmbedFooter {
|
|
15
|
+
text: string;
|
|
16
|
+
icon_url?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface APIEmbedImage {
|
|
19
|
+
url: string;
|
|
20
|
+
height?: number;
|
|
21
|
+
width?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface APIEmbedThumbnail {
|
|
24
|
+
url: string;
|
|
25
|
+
height?: number;
|
|
26
|
+
width?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface APIEmbed {
|
|
29
|
+
title?: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
url?: string;
|
|
32
|
+
timestamp?: string;
|
|
33
|
+
color?: number;
|
|
34
|
+
footer?: APIEmbedFooter;
|
|
35
|
+
image?: APIEmbedImage;
|
|
36
|
+
thumbnail?: APIEmbedThumbnail;
|
|
37
|
+
author?: APIEmbedAuthor;
|
|
38
|
+
fields?: APIEmbedField[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A builder for creating embeds
|
|
42
|
+
*/
|
|
43
|
+
export declare class EmbedBuilder {
|
|
44
|
+
readonly data: APIEmbed;
|
|
45
|
+
constructor(data?: APIEmbed);
|
|
46
|
+
/**
|
|
47
|
+
* Sets the title of this embed
|
|
48
|
+
* @param title The title
|
|
49
|
+
*/
|
|
50
|
+
setTitle(title: string | null): this;
|
|
51
|
+
/**
|
|
52
|
+
* Sets the description of this embed
|
|
53
|
+
* @param description The description
|
|
54
|
+
*/
|
|
55
|
+
setDescription(description: string | null): this;
|
|
56
|
+
/**
|
|
57
|
+
* Sets the URL of this embed
|
|
58
|
+
* @param url The URL
|
|
59
|
+
*/
|
|
60
|
+
setURL(url: string | null): this;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the timestamp of this embed
|
|
63
|
+
* @param timestamp The timestamp or date
|
|
64
|
+
*/
|
|
65
|
+
setTimestamp(timestamp?: Date | number | null): this;
|
|
66
|
+
/**
|
|
67
|
+
* Sets the color of this embed
|
|
68
|
+
* @param color The color (number, hex string, or RGB array)
|
|
69
|
+
*/
|
|
70
|
+
setColor(color: number | `#${string}` | [number, number, number] | null): this;
|
|
71
|
+
/**
|
|
72
|
+
* Sets the footer of this embed
|
|
73
|
+
* @param options The footer options
|
|
74
|
+
*/
|
|
75
|
+
setFooter(options: {
|
|
76
|
+
text: string;
|
|
77
|
+
iconURL?: string;
|
|
78
|
+
} | null): this;
|
|
79
|
+
/**
|
|
80
|
+
* Sets the image of this embed
|
|
81
|
+
* @param url The image URL
|
|
82
|
+
*/
|
|
83
|
+
setImage(url: string | null): this;
|
|
84
|
+
/**
|
|
85
|
+
* Sets the thumbnail of this embed
|
|
86
|
+
* @param url The thumbnail URL
|
|
87
|
+
*/
|
|
88
|
+
setThumbnail(url: string | null): this;
|
|
89
|
+
/**
|
|
90
|
+
* Sets the author of this embed
|
|
91
|
+
* @param options The author options
|
|
92
|
+
*/
|
|
93
|
+
setAuthor(options: {
|
|
94
|
+
name: string;
|
|
95
|
+
iconURL?: string;
|
|
96
|
+
url?: string;
|
|
97
|
+
} | null): this;
|
|
98
|
+
/**
|
|
99
|
+
* Adds fields to this embed
|
|
100
|
+
* @param fields The fields to add
|
|
101
|
+
*/
|
|
102
|
+
addFields(...fields: APIEmbedField[]): this;
|
|
103
|
+
/**
|
|
104
|
+
* Sets the fields of this embed
|
|
105
|
+
* @param fields The fields to set
|
|
106
|
+
*/
|
|
107
|
+
setFields(...fields: APIEmbedField[]): this;
|
|
108
|
+
/**
|
|
109
|
+
* Removes, replaces, or inserts fields
|
|
110
|
+
* @param index The index to start at
|
|
111
|
+
* @param deleteCount The number of fields to remove
|
|
112
|
+
* @param fields The fields to insert
|
|
113
|
+
*/
|
|
114
|
+
spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this;
|
|
115
|
+
/**
|
|
116
|
+
* Returns the JSON representation of this embed
|
|
117
|
+
*/
|
|
118
|
+
toJSON(): APIEmbed;
|
|
119
|
+
/**
|
|
120
|
+
* Creates a new embed builder from existing data
|
|
121
|
+
* @param other The embed data to copy
|
|
122
|
+
*/
|
|
123
|
+
static from(other: APIEmbed | EmbedBuilder): EmbedBuilder;
|
|
124
|
+
}
|
|
125
|
+
export declare const Colors: {
|
|
126
|
+
readonly Default: 0;
|
|
127
|
+
readonly White: 16777215;
|
|
128
|
+
readonly Aqua: 1752220;
|
|
129
|
+
readonly Green: 5763719;
|
|
130
|
+
readonly Blue: 3447003;
|
|
131
|
+
readonly Yellow: 16705372;
|
|
132
|
+
readonly Purple: 10181046;
|
|
133
|
+
readonly LuminousVividPink: 15277667;
|
|
134
|
+
readonly Fuchsia: 15418782;
|
|
135
|
+
readonly Gold: 15844367;
|
|
136
|
+
readonly Orange: 15105570;
|
|
137
|
+
readonly Red: 15548997;
|
|
138
|
+
readonly Grey: 9807270;
|
|
139
|
+
readonly Navy: 3426654;
|
|
140
|
+
readonly DarkAqua: 1146986;
|
|
141
|
+
readonly DarkGreen: 2067276;
|
|
142
|
+
readonly DarkBlue: 2123412;
|
|
143
|
+
readonly DarkPurple: 7419530;
|
|
144
|
+
readonly DarkVividPink: 11342935;
|
|
145
|
+
readonly DarkGold: 12745742;
|
|
146
|
+
readonly DarkOrange: 11027200;
|
|
147
|
+
readonly DarkRed: 10038562;
|
|
148
|
+
readonly DarkGrey: 9936031;
|
|
149
|
+
readonly DarkerGrey: 8359053;
|
|
150
|
+
readonly LightGrey: 12370112;
|
|
151
|
+
readonly DarkNavy: 2899536;
|
|
152
|
+
readonly Blurple: 5793266;
|
|
153
|
+
readonly Greyple: 10070709;
|
|
154
|
+
readonly DarkButNotBlack: 2895667;
|
|
155
|
+
readonly NotQuiteBlack: 2303786;
|
|
156
|
+
};
|
|
157
|
+
export default EmbedBuilder;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* EmbedBuilder for creating rich embeds
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Colors = exports.EmbedBuilder = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* A builder for creating embeds
|
|
9
|
+
*/
|
|
10
|
+
class EmbedBuilder {
|
|
11
|
+
data;
|
|
12
|
+
constructor(data = {}) {
|
|
13
|
+
this.data = { ...data };
|
|
14
|
+
if (data.fields) {
|
|
15
|
+
this.data.fields = [...data.fields];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Sets the title of this embed
|
|
20
|
+
* @param title The title
|
|
21
|
+
*/
|
|
22
|
+
setTitle(title) {
|
|
23
|
+
this.data.title = title ?? undefined;
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Sets the description of this embed
|
|
28
|
+
* @param description The description
|
|
29
|
+
*/
|
|
30
|
+
setDescription(description) {
|
|
31
|
+
this.data.description = description ?? undefined;
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sets the URL of this embed
|
|
36
|
+
* @param url The URL
|
|
37
|
+
*/
|
|
38
|
+
setURL(url) {
|
|
39
|
+
this.data.url = url ?? undefined;
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sets the timestamp of this embed
|
|
44
|
+
* @param timestamp The timestamp or date
|
|
45
|
+
*/
|
|
46
|
+
setTimestamp(timestamp = Date.now()) {
|
|
47
|
+
this.data.timestamp = timestamp === null
|
|
48
|
+
? undefined
|
|
49
|
+
: new Date(timestamp).toISOString();
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Sets the color of this embed
|
|
54
|
+
* @param color The color (number, hex string, or RGB array)
|
|
55
|
+
*/
|
|
56
|
+
setColor(color) {
|
|
57
|
+
if (color === null) {
|
|
58
|
+
this.data.color = undefined;
|
|
59
|
+
}
|
|
60
|
+
else if (typeof color === 'number') {
|
|
61
|
+
this.data.color = color;
|
|
62
|
+
}
|
|
63
|
+
else if (typeof color === 'string') {
|
|
64
|
+
this.data.color = parseInt(color.replace('#', ''), 16);
|
|
65
|
+
}
|
|
66
|
+
else if (Array.isArray(color)) {
|
|
67
|
+
this.data.color = (color[0] << 16) + (color[1] << 8) + color[2];
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Sets the footer of this embed
|
|
73
|
+
* @param options The footer options
|
|
74
|
+
*/
|
|
75
|
+
setFooter(options) {
|
|
76
|
+
if (options === null) {
|
|
77
|
+
this.data.footer = undefined;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.data.footer = {
|
|
81
|
+
text: options.text,
|
|
82
|
+
icon_url: options.iconURL,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Sets the image of this embed
|
|
89
|
+
* @param url The image URL
|
|
90
|
+
*/
|
|
91
|
+
setImage(url) {
|
|
92
|
+
this.data.image = url === null ? undefined : { url };
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Sets the thumbnail of this embed
|
|
97
|
+
* @param url The thumbnail URL
|
|
98
|
+
*/
|
|
99
|
+
setThumbnail(url) {
|
|
100
|
+
this.data.thumbnail = url === null ? undefined : { url };
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Sets the author of this embed
|
|
105
|
+
* @param options The author options
|
|
106
|
+
*/
|
|
107
|
+
setAuthor(options) {
|
|
108
|
+
if (options === null) {
|
|
109
|
+
this.data.author = undefined;
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.data.author = {
|
|
113
|
+
name: options.name,
|
|
114
|
+
icon_url: options.iconURL,
|
|
115
|
+
url: options.url,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Adds fields to this embed
|
|
122
|
+
* @param fields The fields to add
|
|
123
|
+
*/
|
|
124
|
+
addFields(...fields) {
|
|
125
|
+
if (!this.data.fields)
|
|
126
|
+
this.data.fields = [];
|
|
127
|
+
this.data.fields.push(...fields);
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Sets the fields of this embed
|
|
132
|
+
* @param fields The fields to set
|
|
133
|
+
*/
|
|
134
|
+
setFields(...fields) {
|
|
135
|
+
this.data.fields = fields;
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Removes, replaces, or inserts fields
|
|
140
|
+
* @param index The index to start at
|
|
141
|
+
* @param deleteCount The number of fields to remove
|
|
142
|
+
* @param fields The fields to insert
|
|
143
|
+
*/
|
|
144
|
+
spliceFields(index, deleteCount, ...fields) {
|
|
145
|
+
if (!this.data.fields)
|
|
146
|
+
this.data.fields = [];
|
|
147
|
+
this.data.fields.splice(index, deleteCount, ...fields);
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Returns the JSON representation of this embed
|
|
152
|
+
*/
|
|
153
|
+
toJSON() {
|
|
154
|
+
return { ...this.data };
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Creates a new embed builder from existing data
|
|
158
|
+
* @param other The embed data to copy
|
|
159
|
+
*/
|
|
160
|
+
static from(other) {
|
|
161
|
+
return new EmbedBuilder(other instanceof EmbedBuilder ? other.data : other);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.EmbedBuilder = EmbedBuilder;
|
|
165
|
+
// Color constants (DJS compatibility)
|
|
166
|
+
exports.Colors = {
|
|
167
|
+
Default: 0x000000,
|
|
168
|
+
White: 0xffffff,
|
|
169
|
+
Aqua: 0x1abc9c,
|
|
170
|
+
Green: 0x57f287,
|
|
171
|
+
Blue: 0x3498db,
|
|
172
|
+
Yellow: 0xfee75c,
|
|
173
|
+
Purple: 0x9b59b6,
|
|
174
|
+
LuminousVividPink: 0xe91e63,
|
|
175
|
+
Fuchsia: 0xeb459e,
|
|
176
|
+
Gold: 0xf1c40f,
|
|
177
|
+
Orange: 0xe67e22,
|
|
178
|
+
Red: 0xed4245,
|
|
179
|
+
Grey: 0x95a5a6,
|
|
180
|
+
Navy: 0x34495e,
|
|
181
|
+
DarkAqua: 0x11806a,
|
|
182
|
+
DarkGreen: 0x1f8b4c,
|
|
183
|
+
DarkBlue: 0x206694,
|
|
184
|
+
DarkPurple: 0x71368a,
|
|
185
|
+
DarkVividPink: 0xad1457,
|
|
186
|
+
DarkGold: 0xc27c0e,
|
|
187
|
+
DarkOrange: 0xa84300,
|
|
188
|
+
DarkRed: 0x992d22,
|
|
189
|
+
DarkGrey: 0x979c9f,
|
|
190
|
+
DarkerGrey: 0x7f8c8d,
|
|
191
|
+
LightGrey: 0xbcc0c0,
|
|
192
|
+
DarkNavy: 0x2c3e50,
|
|
193
|
+
Blurple: 0x5865f2,
|
|
194
|
+
Greyple: 0x99aab5,
|
|
195
|
+
DarkButNotBlack: 0x2c2f33,
|
|
196
|
+
NotQuiteBlack: 0x23272a,
|
|
197
|
+
};
|
|
198
|
+
exports.default = EmbedBuilder;
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1iZWRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXJzL0VtYmVkQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQTRDSDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUNQLElBQUksQ0FBVztJQUUvQixZQUFZLE9BQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFvQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxXQUEwQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLElBQUksU0FBUyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFrQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxZQUFrQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsS0FBSyxJQUFJO1lBQ3RDLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUE4RDtRQUNyRSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxDQUFDO2FBQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsT0FBa0Q7UUFDMUQsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUc7Z0JBQ2pCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtnQkFDbEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPO2FBQzFCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEdBQWtCO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsR0FBa0I7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxPQUFnRTtRQUN4RSxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRztnQkFDakIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO2dCQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRzthQUNqQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxHQUFHLE1BQXVCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEdBQUcsTUFBdUI7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLEtBQWEsRUFBRSxXQUFtQixFQUFFLEdBQUcsTUFBdUI7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUE4QjtRQUN4QyxPQUFPLElBQUksWUFBWSxDQUFDLEtBQUssWUFBWSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7Q0FDRjtBQWpLRCxvQ0FpS0M7QUFFRCxzQ0FBc0M7QUFDekIsUUFBQSxNQUFNLEdBQUc7SUFDcEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsS0FBSyxFQUFFLFFBQVE7SUFDZixJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxRQUFRO0lBQ2YsSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUsUUFBUTtJQUNoQixNQUFNLEVBQUUsUUFBUTtJQUNoQixpQkFBaUIsRUFBRSxRQUFRO0lBQzNCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsZUFBZSxFQUFFLFFBQVE7SUFDekIsYUFBYSxFQUFFLFFBQVE7Q0FDZixDQUFDO0FBRVgsa0JBQWUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEVtYmVkQnVpbGRlciBmb3IgY3JlYXRpbmcgcmljaCBlbWJlZHNcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUVtYmVkRmllbGQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGlubGluZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRBdXRob3Ige1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgaWNvbl91cmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRGb290ZXIge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBpY29uX3VybD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZEltYWdlIHtcclxuICB1cmw6IHN0cmluZztcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRUaHVtYm5haWwge1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlcjtcclxuICB3aWR0aD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZCB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIHRpbWVzdGFtcD86IHN0cmluZztcclxuICBjb2xvcj86IG51bWJlcjtcclxuICBmb290ZXI/OiBBUElFbWJlZEZvb3RlcjtcclxuICBpbWFnZT86IEFQSUVtYmVkSW1hZ2U7XHJcbiAgdGh1bWJuYWlsPzogQVBJRW1iZWRUaHVtYm5haWw7XHJcbiAgYXV0aG9yPzogQVBJRW1iZWRBdXRob3I7XHJcbiAgZmllbGRzPzogQVBJRW1iZWRGaWVsZFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBlbWJlZHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbWJlZEJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBBUElFbWJlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogQVBJRW1iZWQgPSB7fSkge1xyXG4gICAgdGhpcy5kYXRhID0geyAuLi5kYXRhIH07XHJcbiAgICBpZiAoZGF0YS5maWVsZHMpIHtcclxuICAgICAgdGhpcy5kYXRhLmZpZWxkcyA9IFsuLi5kYXRhLmZpZWxkc107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0aXRsZSBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZVxyXG4gICAqL1xyXG4gIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudGl0bGUgPSB0aXRsZSA/PyB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uXHJcbiAgICovXHJcbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgVVJMIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdXJsIFRoZSBVUkxcclxuICAgKi9cclxuICBzZXRVUkwodXJsOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudXJsID0gdXJsID8/IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgb3IgZGF0ZVxyXG4gICAqL1xyXG4gIHNldFRpbWVzdGFtcCh0aW1lc3RhbXA6IERhdGUgfCBudW1iZXIgfCBudWxsID0gRGF0ZS5ub3coKSk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRpbWVzdGFtcCA9IHRpbWVzdGFtcCA9PT0gbnVsbCBcclxuICAgICAgPyB1bmRlZmluZWQgXHJcbiAgICAgIDogbmV3IERhdGUodGltZXN0YW1wKS50b0lTT1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIGNvbG9yIFRoZSBjb2xvciAobnVtYmVyLCBoZXggc3RyaW5nLCBvciBSR0IgYXJyYXkpXHJcbiAgICovXHJcbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlciB8IGAjJHtzdHJpbmd9YCB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IG51bGwpOiB0aGlzIHtcclxuICAgIGlmIChjb2xvciA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmRhdGEuY29sb3IgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ251bWJlcicpIHtcclxuICAgICAgdGhpcy5kYXRhLmNvbG9yID0gY29sb3I7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5kYXRhLmNvbG9yID0gcGFyc2VJbnQoY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xyXG4gICAgICB0aGlzLmRhdGEuY29sb3IgPSAoY29sb3JbMF0gPDwgMTYpICsgKGNvbG9yWzFdIDw8IDgpICsgY29sb3JbMl07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGZvb3RlciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGZvb3RlciBvcHRpb25zXHJcbiAgICovXHJcbiAgc2V0Rm9vdGVyKG9wdGlvbnM6IHsgdGV4dDogc3RyaW5nOyBpY29uVVJMPzogc3RyaW5nIH0gfCBudWxsKTogdGhpcyB7XHJcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmRhdGEuZm9vdGVyID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhLmZvb3RlciA9IHtcclxuICAgICAgICB0ZXh0OiBvcHRpb25zLnRleHQsXHJcbiAgICAgICAgaWNvbl91cmw6IG9wdGlvbnMuaWNvblVSTCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgaW1hZ2Ugb2YgdGhpcyBlbWJlZFxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIGltYWdlIFVSTFxyXG4gICAqL1xyXG4gIHNldEltYWdlKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmltYWdlID0gdXJsID09PSBudWxsID8gdW5kZWZpbmVkIDogeyB1cmwgfTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGh1bWJuYWlsIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdXJsIFRoZSB0aHVtYm5haWwgVVJMXHJcbiAgICovXHJcbiAgc2V0VGh1bWJuYWlsKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRodW1ibmFpbCA9IHVybCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHsgdXJsIH07XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGF1dGhvciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGF1dGhvciBvcHRpb25zXHJcbiAgICovXHJcbiAgc2V0QXV0aG9yKG9wdGlvbnM6IHsgbmFtZTogc3RyaW5nOyBpY29uVVJMPzogc3RyaW5nOyB1cmw/OiBzdHJpbmcgfSB8IG51bGwpOiB0aGlzIHtcclxuICAgIGlmIChvcHRpb25zID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5hdXRob3IgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGEuYXV0aG9yID0ge1xyXG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcclxuICAgICAgICBpY29uX3VybDogb3B0aW9ucy5pY29uVVJMLFxyXG4gICAgICAgIHVybDogb3B0aW9ucy51cmwsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgZmllbGRzIHRvIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gYWRkXHJcbiAgICovXHJcbiAgYWRkRmllbGRzKC4uLmZpZWxkczogQVBJRW1iZWRGaWVsZFtdKTogdGhpcyB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YS5maWVsZHMpIHRoaXMuZGF0YS5maWVsZHMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5maWVsZHMucHVzaCguLi5maWVsZHMpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBmaWVsZHMgb2YgdGhpcyBlbWJlZFxyXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGZpZWxkcyB0byBzZXRcclxuICAgKi9cclxuICBzZXRGaWVsZHMoLi4uZmllbGRzOiBBUElFbWJlZEZpZWxkW10pOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5maWVsZHMgPSBmaWVsZHM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMsIHJlcGxhY2VzLCBvciBpbnNlcnRzIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc3RhcnQgYXRcclxuICAgKiBAcGFyYW0gZGVsZXRlQ291bnQgVGhlIG51bWJlciBvZiBmaWVsZHMgdG8gcmVtb3ZlXHJcbiAgICogQHBhcmFtIGZpZWxkcyBUaGUgZmllbGRzIHRvIGluc2VydFxyXG4gICAqL1xyXG4gIHNwbGljZUZpZWxkcyhpbmRleDogbnVtYmVyLCBkZWxldGVDb3VudDogbnVtYmVyLCAuLi5maWVsZHM6IEFQSUVtYmVkRmllbGRbXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuZmllbGRzKSB0aGlzLmRhdGEuZmllbGRzID0gW107XHJcbiAgICB0aGlzLmRhdGEuZmllbGRzLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLmZpZWxkcyk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBlbWJlZFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElFbWJlZCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgZW1iZWQgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIGVtYmVkIGRhdGEgdG8gY29weVxyXG4gICAqL1xyXG4gIHN0YXRpYyBmcm9tKG90aGVyOiBBUElFbWJlZCB8IEVtYmVkQnVpbGRlcik6IEVtYmVkQnVpbGRlciB7XHJcbiAgICByZXR1cm4gbmV3IEVtYmVkQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIEVtYmVkQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDb2xvciBjb25zdGFudHMgKERKUyBjb21wYXRpYmlsaXR5KVxyXG5leHBvcnQgY29uc3QgQ29sb3JzID0ge1xyXG4gIERlZmF1bHQ6IDB4MDAwMDAwLFxyXG4gIFdoaXRlOiAweGZmZmZmZixcclxuICBBcXVhOiAweDFhYmM5YyxcclxuICBHcmVlbjogMHg1N2YyODcsXHJcbiAgQmx1ZTogMHgzNDk4ZGIsXHJcbiAgWWVsbG93OiAweGZlZTc1YyxcclxuICBQdXJwbGU6IDB4OWI1OWI2LFxyXG4gIEx1bWlub3VzVml2aWRQaW5rOiAweGU5MWU2MyxcclxuICBGdWNoc2lhOiAweGViNDU5ZSxcclxuICBHb2xkOiAweGYxYzQwZixcclxuICBPcmFuZ2U6IDB4ZTY3ZTIyLFxyXG4gIFJlZDogMHhlZDQyNDUsXHJcbiAgR3JleTogMHg5NWE1YTYsXHJcbiAgTmF2eTogMHgzNDQ5NWUsXHJcbiAgRGFya0FxdWE6IDB4MTE4MDZhLFxyXG4gIERhcmtHcmVlbjogMHgxZjhiNGMsXHJcbiAgRGFya0JsdWU6IDB4MjA2Njk0LFxyXG4gIERhcmtQdXJwbGU6IDB4NzEzNjhhLFxyXG4gIERhcmtWaXZpZFBpbms6IDB4YWQxNDU3LFxyXG4gIERhcmtHb2xkOiAweGMyN2MwZSxcclxuICBEYXJrT3JhbmdlOiAweGE4NDMwMCxcclxuICBEYXJrUmVkOiAweDk5MmQyMixcclxuICBEYXJrR3JleTogMHg5NzljOWYsXHJcbiAgRGFya2VyR3JleTogMHg3ZjhjOGQsXHJcbiAgTGlnaHRHcmV5OiAweGJjYzBjMCxcclxuICBEYXJrTmF2eTogMHgyYzNlNTAsXHJcbiAgQmx1cnBsZTogMHg1ODY1ZjIsXHJcbiAgR3JleXBsZTogMHg5OWFhYjUsXHJcbiAgRGFya0J1dE5vdEJsYWNrOiAweDJjMmYzMyxcclxuICBOb3RRdWl0ZUJsYWNrOiAweDIzMjcyYSxcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEVtYmVkQnVpbGRlcjtcclxuIl19
|