@jubbio/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/Client.d.ts +147 -0
  4. package/dist/Client.js +471 -0
  5. package/dist/builders/ActionRowBuilder.d.ts +53 -0
  6. package/dist/builders/ActionRowBuilder.js +68 -0
  7. package/dist/builders/ButtonBuilder.d.ts +77 -0
  8. package/dist/builders/ButtonBuilder.js +96 -0
  9. package/dist/builders/EmbedBuilder.d.ts +157 -0
  10. package/dist/builders/EmbedBuilder.js +199 -0
  11. package/dist/builders/ModalBuilder.d.ts +122 -0
  12. package/dist/builders/ModalBuilder.js +162 -0
  13. package/dist/builders/SelectMenuBuilder.d.ts +123 -0
  14. package/dist/builders/SelectMenuBuilder.js +165 -0
  15. package/dist/builders/SlashCommandBuilder.d.ts +197 -0
  16. package/dist/builders/SlashCommandBuilder.js +324 -0
  17. package/dist/builders/index.d.ts +9 -0
  18. package/dist/builders/index.js +26 -0
  19. package/dist/enums.d.ts +196 -0
  20. package/dist/enums.js +216 -0
  21. package/dist/index.d.ts +25 -0
  22. package/dist/index.js +128 -0
  23. package/dist/managers/BaseManager.d.ts +69 -0
  24. package/dist/managers/BaseManager.js +106 -0
  25. package/dist/managers/ChannelManager.d.ts +98 -0
  26. package/dist/managers/ChannelManager.js +209 -0
  27. package/dist/managers/GuildMemberManager.d.ts +74 -0
  28. package/dist/managers/GuildMemberManager.js +156 -0
  29. package/dist/managers/RoleManager.d.ts +84 -0
  30. package/dist/managers/RoleManager.js +207 -0
  31. package/dist/managers/index.d.ts +7 -0
  32. package/dist/managers/index.js +24 -0
  33. package/dist/rest/REST.d.ts +483 -0
  34. package/dist/rest/REST.js +805 -0
  35. package/dist/rest/index.d.ts +1 -0
  36. package/dist/rest/index.js +18 -0
  37. package/dist/sharding/ShardingManager.d.ts +179 -0
  38. package/dist/sharding/ShardingManager.js +375 -0
  39. package/dist/sharding/index.d.ts +4 -0
  40. package/dist/sharding/index.js +21 -0
  41. package/dist/structures/Channel.d.ts +120 -0
  42. package/dist/structures/Channel.js +224 -0
  43. package/dist/structures/Collection.d.ts +53 -0
  44. package/dist/structures/Collection.js +115 -0
  45. package/dist/structures/Guild.d.ts +59 -0
  46. package/dist/structures/Guild.js +90 -0
  47. package/dist/structures/GuildMember.d.ts +130 -0
  48. package/dist/structures/GuildMember.js +208 -0
  49. package/dist/structures/Interaction.d.ts +224 -0
  50. package/dist/structures/Interaction.js +404 -0
  51. package/dist/structures/Message.d.ts +93 -0
  52. package/dist/structures/Message.js +145 -0
  53. package/dist/structures/User.d.ts +37 -0
  54. package/dist/structures/User.js +65 -0
  55. package/dist/structures/index.d.ts +7 -0
  56. package/dist/structures/index.js +25 -0
  57. package/dist/structures.d.ts +1 -0
  58. package/dist/structures.js +19 -0
  59. package/dist/types.d.ts +255 -0
  60. package/dist/types.js +3 -0
  61. package/dist/utils/BitField.d.ts +66 -0
  62. package/dist/utils/BitField.js +138 -0
  63. package/dist/utils/Collection.d.ts +116 -0
  64. package/dist/utils/Collection.js +265 -0
  65. package/dist/utils/Collector.d.ts +152 -0
  66. package/dist/utils/Collector.js +314 -0
  67. package/dist/utils/DataResolver.d.ts +61 -0
  68. package/dist/utils/DataResolver.js +146 -0
  69. package/dist/utils/Formatters.d.ts +145 -0
  70. package/dist/utils/Formatters.js +213 -0
  71. package/dist/utils/IntentsBitField.d.ts +85 -0
  72. package/dist/utils/IntentsBitField.js +99 -0
  73. package/dist/utils/Partials.d.ts +105 -0
  74. package/dist/utils/Partials.js +149 -0
  75. package/dist/utils/PermissionsBitField.d.ts +118 -0
  76. package/dist/utils/PermissionsBitField.js +145 -0
  77. package/dist/utils/SnowflakeUtil.d.ts +63 -0
  78. package/dist/utils/SnowflakeUtil.js +93 -0
  79. package/dist/utils/Sweepers.d.ts +127 -0
  80. package/dist/utils/Sweepers.js +270 -0
  81. package/dist/utils/index.d.ts +13 -0
  82. package/dist/utils/index.js +30 -0
  83. package/package.json +37 -0
@@ -0,0 +1,122 @@
1
+ /**
2
+ * ModalBuilder for creating modals
3
+ */
4
+ /**
5
+ * Text input styles
6
+ */
7
+ export declare enum TextInputStyle {
8
+ Short = 1,
9
+ Paragraph = 2
10
+ }
11
+ export interface APITextInputComponent {
12
+ type: 4;
13
+ custom_id: string;
14
+ style: TextInputStyle;
15
+ label: string;
16
+ min_length?: number;
17
+ max_length?: number;
18
+ required?: boolean;
19
+ value?: string;
20
+ placeholder?: string;
21
+ }
22
+ export interface APIModalActionRow {
23
+ type: 1;
24
+ components: APITextInputComponent[];
25
+ }
26
+ export interface APIModal {
27
+ custom_id: string;
28
+ title: string;
29
+ components: APIModalActionRow[];
30
+ }
31
+ /**
32
+ * A builder for creating text inputs
33
+ */
34
+ export declare class TextInputBuilder {
35
+ readonly data: Partial<APITextInputComponent>;
36
+ constructor(data?: Partial<APITextInputComponent>);
37
+ /**
38
+ * Sets the custom ID of this text input
39
+ * @param customId The custom ID
40
+ */
41
+ setCustomId(customId: string): this;
42
+ /**
43
+ * Sets the label of this text input
44
+ * @param label The label
45
+ */
46
+ setLabel(label: string): this;
47
+ /**
48
+ * Sets the style of this text input
49
+ * @param style The style
50
+ */
51
+ setStyle(style: TextInputStyle): this;
52
+ /**
53
+ * Sets the minimum length of this text input
54
+ * @param minLength The minimum length
55
+ */
56
+ setMinLength(minLength: number): this;
57
+ /**
58
+ * Sets the maximum length of this text input
59
+ * @param maxLength The maximum length
60
+ */
61
+ setMaxLength(maxLength: number): this;
62
+ /**
63
+ * Sets whether this text input is required
64
+ * @param required Whether the text input is required
65
+ */
66
+ setRequired(required?: boolean): this;
67
+ /**
68
+ * Sets the value of this text input
69
+ * @param value The value
70
+ */
71
+ setValue(value: string): this;
72
+ /**
73
+ * Sets the placeholder of this text input
74
+ * @param placeholder The placeholder
75
+ */
76
+ setPlaceholder(placeholder: string): this;
77
+ /**
78
+ * Returns the JSON representation of this text input
79
+ */
80
+ toJSON(): APITextInputComponent;
81
+ }
82
+ /**
83
+ * A builder for creating modals
84
+ */
85
+ export declare class ModalBuilder {
86
+ readonly data: Partial<APIModal>;
87
+ constructor(data?: Partial<APIModal>);
88
+ /**
89
+ * Sets the custom ID of this modal
90
+ * @param customId The custom ID
91
+ */
92
+ setCustomId(customId: string): this;
93
+ /**
94
+ * Sets the title of this modal
95
+ * @param title The title
96
+ */
97
+ setTitle(title: string): this;
98
+ /**
99
+ * Adds components (action rows with text inputs) to this modal
100
+ * @param components The components to add
101
+ */
102
+ addComponents(...components: (APIModalActionRow | {
103
+ toJSON(): APIModalActionRow;
104
+ })[]): this;
105
+ /**
106
+ * Sets the components of this modal
107
+ * @param components The components to set
108
+ */
109
+ setComponents(...components: (APIModalActionRow | {
110
+ toJSON(): APIModalActionRow;
111
+ })[]): this;
112
+ /**
113
+ * Returns the JSON representation of this modal
114
+ */
115
+ toJSON(): APIModal;
116
+ /**
117
+ * Creates a new modal builder from existing data
118
+ * @param other The modal data to copy
119
+ */
120
+ static from(other: Partial<APIModal> | ModalBuilder): ModalBuilder;
121
+ }
122
+ export default ModalBuilder;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * ModalBuilder for creating modals
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ModalBuilder = exports.TextInputBuilder = exports.TextInputStyle = void 0;
7
+ /**
8
+ * Text input styles
9
+ */
10
+ var TextInputStyle;
11
+ (function (TextInputStyle) {
12
+ TextInputStyle[TextInputStyle["Short"] = 1] = "Short";
13
+ TextInputStyle[TextInputStyle["Paragraph"] = 2] = "Paragraph";
14
+ })(TextInputStyle || (exports.TextInputStyle = TextInputStyle = {}));
15
+ /**
16
+ * A builder for creating text inputs
17
+ */
18
+ class TextInputBuilder {
19
+ data;
20
+ constructor(data = {}) {
21
+ this.data = { type: 4, ...data };
22
+ }
23
+ /**
24
+ * Sets the custom ID of this text input
25
+ * @param customId The custom ID
26
+ */
27
+ setCustomId(customId) {
28
+ this.data.custom_id = customId;
29
+ return this;
30
+ }
31
+ /**
32
+ * Sets the label of this text input
33
+ * @param label The label
34
+ */
35
+ setLabel(label) {
36
+ this.data.label = label;
37
+ return this;
38
+ }
39
+ /**
40
+ * Sets the style of this text input
41
+ * @param style The style
42
+ */
43
+ setStyle(style) {
44
+ this.data.style = style;
45
+ return this;
46
+ }
47
+ /**
48
+ * Sets the minimum length of this text input
49
+ * @param minLength The minimum length
50
+ */
51
+ setMinLength(minLength) {
52
+ this.data.min_length = minLength;
53
+ return this;
54
+ }
55
+ /**
56
+ * Sets the maximum length of this text input
57
+ * @param maxLength The maximum length
58
+ */
59
+ setMaxLength(maxLength) {
60
+ this.data.max_length = maxLength;
61
+ return this;
62
+ }
63
+ /**
64
+ * Sets whether this text input is required
65
+ * @param required Whether the text input is required
66
+ */
67
+ setRequired(required = true) {
68
+ this.data.required = required;
69
+ return this;
70
+ }
71
+ /**
72
+ * Sets the value of this text input
73
+ * @param value The value
74
+ */
75
+ setValue(value) {
76
+ this.data.value = value;
77
+ return this;
78
+ }
79
+ /**
80
+ * Sets the placeholder of this text input
81
+ * @param placeholder The placeholder
82
+ */
83
+ setPlaceholder(placeholder) {
84
+ this.data.placeholder = placeholder;
85
+ return this;
86
+ }
87
+ /**
88
+ * Returns the JSON representation of this text input
89
+ */
90
+ toJSON() {
91
+ return { ...this.data };
92
+ }
93
+ }
94
+ exports.TextInputBuilder = TextInputBuilder;
95
+ /**
96
+ * A builder for creating modals
97
+ */
98
+ class ModalBuilder {
99
+ data;
100
+ constructor(data = {}) {
101
+ this.data = { ...data };
102
+ if (!this.data.components)
103
+ this.data.components = [];
104
+ }
105
+ /**
106
+ * Sets the custom ID of this modal
107
+ * @param customId The custom ID
108
+ */
109
+ setCustomId(customId) {
110
+ this.data.custom_id = customId;
111
+ return this;
112
+ }
113
+ /**
114
+ * Sets the title of this modal
115
+ * @param title The title
116
+ */
117
+ setTitle(title) {
118
+ this.data.title = title;
119
+ return this;
120
+ }
121
+ /**
122
+ * Adds components (action rows with text inputs) to this modal
123
+ * @param components The components to add
124
+ */
125
+ addComponents(...components) {
126
+ if (!this.data.components)
127
+ this.data.components = [];
128
+ for (const component of components) {
129
+ if ('toJSON' in component && typeof component.toJSON === 'function') {
130
+ this.data.components.push(component.toJSON());
131
+ }
132
+ else {
133
+ this.data.components.push(component);
134
+ }
135
+ }
136
+ return this;
137
+ }
138
+ /**
139
+ * Sets the components of this modal
140
+ * @param components The components to set
141
+ */
142
+ setComponents(...components) {
143
+ this.data.components = [];
144
+ return this.addComponents(...components);
145
+ }
146
+ /**
147
+ * Returns the JSON representation of this modal
148
+ */
149
+ toJSON() {
150
+ return { ...this.data };
151
+ }
152
+ /**
153
+ * Creates a new modal builder from existing data
154
+ * @param other The modal data to copy
155
+ */
156
+ static from(other) {
157
+ return new ModalBuilder(other instanceof ModalBuilder ? other.data : other);
158
+ }
159
+ }
160
+ exports.ModalBuilder = ModalBuilder;
161
+ exports.default = ModalBuilder;
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kYWxCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXJzL01vZGFsQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVIOztHQUVHO0FBQ0gsSUFBWSxjQUdYO0FBSEQsV0FBWSxjQUFjO0lBQ3hCLHFEQUFTLENBQUE7SUFDVCw2REFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGNBQWMsOEJBQWQsY0FBYyxRQUd6QjtBQXlCRDs7R0FFRztBQUNILE1BQWEsZ0JBQWdCO0lBQ1gsSUFBSSxDQUFpQztJQUVyRCxZQUFZLE9BQXVDLEVBQUU7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQWdCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQXFCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVB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KipcclxuICogTW9kYWxCdWlsZGVyIGZvciBjcmVhdGluZyBtb2RhbHNcclxuICovXHJcblxyXG4vKipcclxuICogVGV4dCBpbnB1dCBzdHlsZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIFRleHRJbnB1dFN0eWxlIHtcclxuICBTaG9ydCA9IDEsXHJcbiAgUGFyYWdyYXBoID0gMixcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElUZXh0SW5wdXRDb21wb25lbnQge1xyXG4gIHR5cGU6IDQ7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgc3R5bGU6IFRleHRJbnB1dFN0eWxlO1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgbWluX2xlbmd0aD86IG51bWJlcjtcclxuICBtYXhfbGVuZ3RoPzogbnVtYmVyO1xyXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcclxuICB2YWx1ZT86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElNb2RhbEFjdGlvblJvdyB7XHJcbiAgdHlwZTogMTtcclxuICBjb21wb25lbnRzOiBBUElUZXh0SW5wdXRDb21wb25lbnRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElNb2RhbCB7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBjb21wb25lbnRzOiBBUElNb2RhbEFjdGlvblJvd1tdO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyB0ZXh0IGlucHV0c1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dEJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVRleHRJbnB1dENvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJVGV4dElucHV0Q29tcG9uZW50PiA9IHt9KSB7XHJcbiAgICB0aGlzLmRhdGEgPSB7IHR5cGU6IDQsIC4uLmRhdGEgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gY3VzdG9tSWQgVGhlIGN1c3RvbSBJRFxyXG4gICAqL1xyXG4gIHNldEN1c3RvbUlkKGN1c3RvbUlkOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5jdXN0b21faWQgPSBjdXN0b21JZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIGxhYmVsIFRoZSBsYWJlbFxyXG4gICAqL1xyXG4gIHNldExhYmVsKGxhYmVsOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5sYWJlbCA9IGxhYmVsO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBzdHlsZSBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlXHJcbiAgICovXHJcbiAgc2V0U3R5bGUoc3R5bGU6IFRleHRJbnB1dFN0eWxlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuc3R5bGUgPSBzdHlsZTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbWluaW11bSBsZW5ndGggb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIG1pbkxlbmd0aCBUaGUgbWluaW11bSBsZW5ndGhcclxuICAgKi9cclxuICBzZXRNaW5MZW5ndGgobWluTGVuZ3RoOiBudW1iZXIpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5taW5fbGVuZ3RoID0gbWluTGVuZ3RoO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiB0aGlzIHRleHQgaW5wdXRcclxuICAgKiBAcGFyYW0gbWF4TGVuZ3RoIFRoZSBtYXhpbXVtIGxlbmd0aFxyXG4gICAqL1xyXG4gIHNldE1heExlbmd0aChtYXhMZW5ndGg6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1heF9sZW5ndGggPSBtYXhMZW5ndGg7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgd2hldGhlciB0aGlzIHRleHQgaW5wdXQgaXMgcmVxdWlyZWRcclxuICAgKiBAcGFyYW0gcmVxdWlyZWQgV2hldGhlciB0aGUgdGV4dCBpbnB1dCBpcyByZXF1aXJlZFxyXG4gICAqL1xyXG4gIHNldFJlcXVpcmVkKHJlcXVpcmVkID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnJlcXVpcmVkID0gcmVxdWlyZWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoaXMgdGV4dCBpbnB1dFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWVcclxuICAgKi9cclxuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudmFsdWUgPSB2YWx1ZTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXIgb2YgdGhpcyB0ZXh0IGlucHV0XHJcbiAgICogQHBhcmFtIHBsYWNlaG9sZGVyIFRoZSBwbGFjZWhvbGRlclxyXG4gICAqL1xyXG4gIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgdGV4dCBpbnB1dFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElUZXh0SW5wdXRDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhIH0gYXMgQVBJVGV4dElucHV0Q29tcG9uZW50O1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEEgYnVpbGRlciBmb3IgY3JlYXRpbmcgbW9kYWxzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTW9kYWxCdWlsZGVyIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YTogUGFydGlhbDxBUElNb2RhbD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJTW9kYWw+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuY29tcG9uZW50cykgdGhpcy5kYXRhLmNvbXBvbmVudHMgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIG1vZGFsXHJcbiAgICogQHBhcmFtIGN1c3RvbUlkIFRoZSBjdXN0b20gSURcclxuICAgKi9cclxuICBzZXRDdXN0b21JZChjdXN0b21JZDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY3VzdG9tX2lkID0gY3VzdG9tSWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHRpdGxlIG9mIHRoaXMgbW9kYWxcclxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIHRpdGxlXHJcbiAgICovXHJcbiAgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRpdGxlID0gdGl0bGU7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgY29tcG9uZW50cyAoYWN0aW9uIHJvd3Mgd2l0aCB0ZXh0IGlucHV0cykgdG8gdGhpcyBtb2RhbFxyXG4gICAqIEBwYXJhbSBjb21wb25lbnRzIFRoZSBjb21wb25lbnRzIHRvIGFkZFxyXG4gICAqL1xyXG4gIGFkZENvbXBvbmVudHMoLi4uY29tcG9uZW50czogKEFQSU1vZGFsQWN0aW9uUm93IHwgeyB0b0pTT04oKTogQVBJTW9kYWxBY3Rpb25Sb3cgfSlbXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuY29tcG9uZW50cykgdGhpcy5kYXRhLmNvbXBvbmVudHMgPSBbXTtcclxuICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGNvbXBvbmVudHMpIHtcclxuICAgICAgaWYgKCd0b0pTT04nIGluIGNvbXBvbmVudCAmJiB0eXBlb2YgY29tcG9uZW50LnRvSlNPTiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHRoaXMuZGF0YS5jb21wb25lbnRzLnB1c2goY29tcG9uZW50LnRvSlNPTigpKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmRhdGEuY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCBhcyBBUElNb2RhbEFjdGlvblJvdyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgY29tcG9uZW50cyBvZiB0aGlzIG1vZGFsXHJcbiAgICogQHBhcmFtIGNvbXBvbmVudHMgVGhlIGNvbXBvbmVudHMgdG8gc2V0XHJcbiAgICovXHJcbiAgc2V0Q29tcG9uZW50cyguLi5jb21wb25lbnRzOiAoQVBJTW9kYWxBY3Rpb25Sb3cgfCB7IHRvSlNPTigpOiBBUElNb2RhbEFjdGlvblJvdyB9KVtdKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY29tcG9uZW50cyA9IFtdO1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkQ29tcG9uZW50cyguLi5jb21wb25lbnRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBtb2RhbFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElNb2RhbCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElNb2RhbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgbW9kYWwgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIG1vZGFsIGRhdGEgdG8gY29weVxyXG4gICAqL1xyXG4gIHN0YXRpYyBmcm9tKG90aGVyOiBQYXJ0aWFsPEFQSU1vZGFsPiB8IE1vZGFsQnVpbGRlcik6IE1vZGFsQnVpbGRlciB7XHJcbiAgICByZXR1cm4gbmV3IE1vZGFsQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIE1vZGFsQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNb2RhbEJ1aWxkZXI7XHJcbiJdfQ==
@@ -0,0 +1,123 @@
1
+ /**
2
+ * SelectMenuBuilder for creating select menus
3
+ */
4
+ export interface APISelectMenuOption {
5
+ label: string;
6
+ value: string;
7
+ description?: string;
8
+ emoji?: {
9
+ id?: string;
10
+ name?: string;
11
+ animated?: boolean;
12
+ };
13
+ default?: boolean;
14
+ }
15
+ export interface APISelectMenuComponent {
16
+ type: 3;
17
+ custom_id: string;
18
+ options?: APISelectMenuOption[];
19
+ placeholder?: string;
20
+ min_values?: number;
21
+ max_values?: number;
22
+ disabled?: boolean;
23
+ }
24
+ /**
25
+ * A builder for creating string select menus
26
+ */
27
+ export declare class StringSelectMenuBuilder {
28
+ readonly data: Partial<APISelectMenuComponent>;
29
+ constructor(data?: Partial<APISelectMenuComponent>);
30
+ /**
31
+ * Sets the custom ID of this select menu
32
+ * @param customId The custom ID
33
+ */
34
+ setCustomId(customId: string): this;
35
+ /**
36
+ * Sets the placeholder of this select menu
37
+ * @param placeholder The placeholder
38
+ */
39
+ setPlaceholder(placeholder: string): this;
40
+ /**
41
+ * Sets the minimum values of this select menu
42
+ * @param minValues The minimum values
43
+ */
44
+ setMinValues(minValues: number): this;
45
+ /**
46
+ * Sets the maximum values of this select menu
47
+ * @param maxValues The maximum values
48
+ */
49
+ setMaxValues(maxValues: number): this;
50
+ /**
51
+ * Sets whether this select menu is disabled
52
+ * @param disabled Whether the select menu is disabled
53
+ */
54
+ setDisabled(disabled?: boolean): this;
55
+ /**
56
+ * Adds options to this select menu
57
+ * @param options The options to add
58
+ */
59
+ addOptions(...options: APISelectMenuOption[]): this;
60
+ /**
61
+ * Sets the options of this select menu
62
+ * @param options The options to set
63
+ */
64
+ setOptions(...options: APISelectMenuOption[]): this;
65
+ /**
66
+ * Removes, replaces, or inserts options
67
+ * @param index The index to start at
68
+ * @param deleteCount The number of options to remove
69
+ * @param options The options to insert
70
+ */
71
+ spliceOptions(index: number, deleteCount: number, ...options: APISelectMenuOption[]): this;
72
+ /**
73
+ * Returns the JSON representation of this select menu
74
+ */
75
+ toJSON(): APISelectMenuComponent;
76
+ /**
77
+ * Creates a new select menu builder from existing data
78
+ * @param other The select menu data to copy
79
+ */
80
+ static from(other: Partial<APISelectMenuComponent> | StringSelectMenuBuilder): StringSelectMenuBuilder;
81
+ }
82
+ /**
83
+ * A builder for creating select menu options
84
+ */
85
+ export declare class StringSelectMenuOptionBuilder {
86
+ readonly data: Partial<APISelectMenuOption>;
87
+ constructor(data?: Partial<APISelectMenuOption>);
88
+ /**
89
+ * Sets the label of this option
90
+ * @param label The label
91
+ */
92
+ setLabel(label: string): this;
93
+ /**
94
+ * Sets the value of this option
95
+ * @param value The value
96
+ */
97
+ setValue(value: string): this;
98
+ /**
99
+ * Sets the description of this option
100
+ * @param description The description
101
+ */
102
+ setDescription(description: string): this;
103
+ /**
104
+ * Sets the emoji of this option
105
+ * @param emoji The emoji
106
+ */
107
+ setEmoji(emoji: {
108
+ id?: string;
109
+ name?: string;
110
+ animated?: boolean;
111
+ } | string): this;
112
+ /**
113
+ * Sets whether this option is the default
114
+ * @param isDefault Whether this option is the default
115
+ */
116
+ setDefault(isDefault?: boolean): this;
117
+ /**
118
+ * Returns the JSON representation of this option
119
+ */
120
+ toJSON(): APISelectMenuOption;
121
+ }
122
+ export { StringSelectMenuBuilder as SelectMenuBuilder };
123
+ export default StringSelectMenuBuilder;
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * SelectMenuBuilder for creating select menus
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SelectMenuBuilder = exports.StringSelectMenuOptionBuilder = exports.StringSelectMenuBuilder = void 0;
7
+ /**
8
+ * A builder for creating string select menus
9
+ */
10
+ class StringSelectMenuBuilder {
11
+ data;
12
+ constructor(data = {}) {
13
+ this.data = { type: 3, ...data };
14
+ if (!this.data.options)
15
+ this.data.options = [];
16
+ }
17
+ /**
18
+ * Sets the custom ID of this select menu
19
+ * @param customId The custom ID
20
+ */
21
+ setCustomId(customId) {
22
+ this.data.custom_id = customId;
23
+ return this;
24
+ }
25
+ /**
26
+ * Sets the placeholder of this select menu
27
+ * @param placeholder The placeholder
28
+ */
29
+ setPlaceholder(placeholder) {
30
+ this.data.placeholder = placeholder;
31
+ return this;
32
+ }
33
+ /**
34
+ * Sets the minimum values of this select menu
35
+ * @param minValues The minimum values
36
+ */
37
+ setMinValues(minValues) {
38
+ this.data.min_values = minValues;
39
+ return this;
40
+ }
41
+ /**
42
+ * Sets the maximum values of this select menu
43
+ * @param maxValues The maximum values
44
+ */
45
+ setMaxValues(maxValues) {
46
+ this.data.max_values = maxValues;
47
+ return this;
48
+ }
49
+ /**
50
+ * Sets whether this select menu is disabled
51
+ * @param disabled Whether the select menu is disabled
52
+ */
53
+ setDisabled(disabled = true) {
54
+ this.data.disabled = disabled;
55
+ return this;
56
+ }
57
+ /**
58
+ * Adds options to this select menu
59
+ * @param options The options to add
60
+ */
61
+ addOptions(...options) {
62
+ if (!this.data.options)
63
+ this.data.options = [];
64
+ this.data.options.push(...options);
65
+ return this;
66
+ }
67
+ /**
68
+ * Sets the options of this select menu
69
+ * @param options The options to set
70
+ */
71
+ setOptions(...options) {
72
+ this.data.options = options;
73
+ return this;
74
+ }
75
+ /**
76
+ * Removes, replaces, or inserts options
77
+ * @param index The index to start at
78
+ * @param deleteCount The number of options to remove
79
+ * @param options The options to insert
80
+ */
81
+ spliceOptions(index, deleteCount, ...options) {
82
+ if (!this.data.options)
83
+ this.data.options = [];
84
+ this.data.options.splice(index, deleteCount, ...options);
85
+ return this;
86
+ }
87
+ /**
88
+ * Returns the JSON representation of this select menu
89
+ */
90
+ toJSON() {
91
+ return { ...this.data };
92
+ }
93
+ /**
94
+ * Creates a new select menu builder from existing data
95
+ * @param other The select menu data to copy
96
+ */
97
+ static from(other) {
98
+ return new StringSelectMenuBuilder(other instanceof StringSelectMenuBuilder ? other.data : other);
99
+ }
100
+ }
101
+ exports.StringSelectMenuBuilder = StringSelectMenuBuilder;
102
+ exports.SelectMenuBuilder = StringSelectMenuBuilder;
103
+ /**
104
+ * A builder for creating select menu options
105
+ */
106
+ class StringSelectMenuOptionBuilder {
107
+ data;
108
+ constructor(data = {}) {
109
+ this.data = { ...data };
110
+ }
111
+ /**
112
+ * Sets the label of this option
113
+ * @param label The label
114
+ */
115
+ setLabel(label) {
116
+ this.data.label = label;
117
+ return this;
118
+ }
119
+ /**
120
+ * Sets the value of this option
121
+ * @param value The value
122
+ */
123
+ setValue(value) {
124
+ this.data.value = value;
125
+ return this;
126
+ }
127
+ /**
128
+ * Sets the description of this option
129
+ * @param description The description
130
+ */
131
+ setDescription(description) {
132
+ this.data.description = description;
133
+ return this;
134
+ }
135
+ /**
136
+ * Sets the emoji of this option
137
+ * @param emoji The emoji
138
+ */
139
+ setEmoji(emoji) {
140
+ if (typeof emoji === 'string') {
141
+ this.data.emoji = { name: emoji };
142
+ }
143
+ else {
144
+ this.data.emoji = emoji;
145
+ }
146
+ return this;
147
+ }
148
+ /**
149
+ * Sets whether this option is the default
150
+ * @param isDefault Whether this option is the default
151
+ */
152
+ setDefault(isDefault = true) {
153
+ this.data.default = isDefault;
154
+ return this;
155
+ }
156
+ /**
157
+ * Returns the JSON representation of this option
158
+ */
159
+ toJSON() {
160
+ return { ...this.data };
161
+ }
162
+ }
163
+ exports.StringSelectMenuOptionBuilder = StringSelectMenuOptionBuilder;
164
+ exports.default = StringSelectMenuBuilder;
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TWVudUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlcnMvU2VsZWN0TWVudUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFvQkg7O0dBRUc7QUFDSCxNQUFhLHVCQUF1QjtJQUNsQixJQUFJLENBQWtDO0lBRXRELFlBQVksT0FBd0MsRUFBRTtRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxH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LENBQUM7SUFDakQsQ0FBQztDQUNGO0FBOURELHNFQThEQztBQUtELGtCQUFlLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFNlbGVjdE1lbnVCdWlsZGVyIGZvciBjcmVhdGluZyBzZWxlY3QgbWVudXNcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVNlbGVjdE1lbnVPcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBlbW9qaT86IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9O1xyXG4gIGRlZmF1bHQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVNlbGVjdE1lbnVDb21wb25lbnQge1xyXG4gIHR5cGU6IDM7XHJcbiAgY3VzdG9tX2lkOiBzdHJpbmc7XHJcbiAgb3B0aW9ucz86IEFQSVNlbGVjdE1lbnVPcHRpb25bXTtcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBtaW5fdmFsdWVzPzogbnVtYmVyO1xyXG4gIG1heF92YWx1ZXM/OiBudW1iZXI7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBzdHJpbmcgc2VsZWN0IG1lbnVzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVDb21wb25lbnQ+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVDb21wb25lbnQ+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgdHlwZTogMywgLi4uZGF0YSB9O1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGN1c3RvbSBJRCBvZiB0aGlzIHNlbGVjdCBtZW51XHJcbiAgICogQHBhcmFtIGN1c3RvbUlkIFRoZSBjdXN0b20gSURcclxuICAgKi9cclxuICBzZXRDdXN0b21JZChjdXN0b21JZDogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuY3VzdG9tX2lkID0gY3VzdG9tSWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHBsYWNlaG9sZGVyIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gcGxhY2Vob2xkZXIgVGhlIHBsYWNlaG9sZGVyXHJcbiAgICovXHJcbiAgc2V0UGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnBsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG1pbmltdW0gdmFsdWVzIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gbWluVmFsdWVzIFRoZSBtaW5pbXVtIHZhbHVlc1xyXG4gICAqL1xyXG4gIHNldE1pblZhbHVlcyhtaW5WYWx1ZXM6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1pbl92YWx1ZXMgPSBtaW5WYWx1ZXM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG1heGltdW0gdmFsdWVzIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gbWF4VmFsdWVzIFRoZSBtYXhpbXVtIHZhbHVlc1xyXG4gICAqL1xyXG4gIHNldE1heFZhbHVlcyhtYXhWYWx1ZXM6IG51bWJlcik6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLm1heF92YWx1ZXMgPSBtYXhWYWx1ZXM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgd2hldGhlciB0aGlzIHNlbGVjdCBtZW51IGlzIGRpc2FibGVkXHJcbiAgICogQHBhcmFtIGRpc2FibGVkIFdoZXRoZXIgdGhlIHNlbGVjdCBtZW51IGlzIGRpc2FibGVkXHJcbiAgICovXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQgPSB0cnVlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkcyBvcHRpb25zIHRvIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBhZGRcclxuICAgKi9cclxuICBhZGRPcHRpb25zKC4uLm9wdGlvbnM6IEFQSVNlbGVjdE1lbnVPcHRpb25bXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5vcHRpb25zLnB1c2goLi4ub3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIG9wdGlvbnMgb2YgdGhpcyBzZWxlY3QgbWVudVxyXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHNldFxyXG4gICAqL1xyXG4gIHNldE9wdGlvbnMoLi4ub3B0aW9uczogQVBJU2VsZWN0TWVudU9wdGlvbltdKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMsIHJlcGxhY2VzLCBvciBpbnNlcnRzIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIHN0YXJ0IGF0XHJcbiAgICogQHBhcmFtIGRlbGV0ZUNvdW50IFRoZSBudW1iZXIgb2Ygb3B0aW9ucyB0byByZW1vdmVcclxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyB0byBpbnNlcnRcclxuICAgKi9cclxuICBzcGxpY2VPcHRpb25zKGluZGV4OiBudW1iZXIsIGRlbGV0ZUNvdW50OiBudW1iZXIsIC4uLm9wdGlvbnM6IEFQSVNlbGVjdE1lbnVPcHRpb25bXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5vcHRpb25zLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLm9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc2VsZWN0IG1lbnVcclxuICAgKi9cclxuICB0b0pTT04oKTogQVBJU2VsZWN0TWVudUNvbXBvbmVudCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfSBhcyBBUElTZWxlY3RNZW51Q29tcG9uZW50O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBzZWxlY3QgbWVudSBidWlsZGVyIGZyb20gZXhpc3RpbmcgZGF0YVxyXG4gICAqIEBwYXJhbSBvdGhlciBUaGUgc2VsZWN0IG1lbnUgZGF0YSB0byBjb3B5XHJcbiAgICovXHJcbiAgc3RhdGljIGZyb20ob3RoZXI6IFBhcnRpYWw8QVBJU2VsZWN0TWVudUNvbXBvbmVudD4gfCBTdHJpbmdTZWxlY3RNZW51QnVpbGRlcik6IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyIHtcclxuICAgIHJldHVybiBuZXcgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIob3RoZXIgaW5zdGFuY2VvZiBTdHJpbmdTZWxlY3RNZW51QnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBzZWxlY3QgbWVudSBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU3RyaW5nU2VsZWN0TWVudU9wdGlvbkJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVPcHRpb24+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVPcHRpb24+ID0ge30pIHtcclxuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgbGFiZWwgb2YgdGhpcyBvcHRpb25cclxuICAgKiBAcGFyYW0gbGFiZWwgVGhlIGxhYmVsXHJcbiAgICovXHJcbiAgc2V0TGFiZWwobGFiZWw6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmxhYmVsID0gbGFiZWw7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uXHJcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZVxyXG4gICAqL1xyXG4gIHNldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG9wdGlvblxyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBUaGUgZGVzY3JpcHRpb25cclxuICAgKi9cclxuICBzZXREZXNjcmlwdGlvbihkZXNjcmlwdGlvbjogc3RyaW5nKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZW1vamkgb2YgdGhpcyBvcHRpb25cclxuICAgKiBAcGFyYW0gZW1vamkgVGhlIGVtb2ppXHJcbiAgICovXHJcbiAgc2V0RW1vamkoZW1vamk6IHsgaWQ/OiBzdHJpbmc7IG5hbWU/OiBzdHJpbmc7IGFuaW1hdGVkPzogYm9vbGVhbiB9IHwgc3RyaW5nKTogdGhpcyB7XHJcbiAgICBpZiAodHlwZW9mIGVtb2ppID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLmRhdGEuZW1vamkgPSB7IG5hbWU6IGVtb2ppIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGEuZW1vamkgPSBlbW9qaTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB3aGV0aGVyIHRoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0XHJcbiAgICogQHBhcmFtIGlzRGVmYXVsdCBXaGV0aGVyIHRoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0XHJcbiAgICovXHJcbiAgc2V0RGVmYXVsdChpc0RlZmF1bHQgPSB0cnVlKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEuZGVmYXVsdCA9IGlzRGVmYXVsdDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9wdGlvblxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElTZWxlY3RNZW51T3B0aW9uIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YSB9IGFzIEFQSVNlbGVjdE1lbnVPcHRpb247XHJcbiAgfVxyXG59XHJcblxyXG4vLyBBbGlhcyBmb3IgREpTIGNvbXBhdGliaWxpdHlcclxuZXhwb3J0IHsgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIgYXMgU2VsZWN0TWVudUJ1aWxkZXIgfTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyO1xyXG4iXX0=