@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,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1iZWRCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkZXJzL0VtYmVkQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQTRDSDs7R0FFRztBQUNILE1BQWEsWUFBWTtJQUNQLElBQUksQ0FBVztJQUUvQixZQUFZLE9BQWlCLEVBQUU7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFvQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksU0FBUyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILGNBQWMsQ0FBQyxXQUEwQjtRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLElBQUksU0FBUyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxHQUFrQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxZQUFrQyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsS0FBSyxJQUFJO1lBQ3RDLENBQUMsQ0FBQyxTQUFTO1lBQ1gsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNB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LElBQUksRUFBRSxRQUFRO0lBQ2QsTUFBTSxFQUFFLFFBQVE7SUFDaEIsR0FBRyxFQUFFLFFBQVE7SUFDYixJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxRQUFRO0lBQ2QsUUFBUSxFQUFFLFFBQVE7SUFDbEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsYUFBYSxFQUFFLFFBQVE7SUFDdkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsVUFBVSxFQUFFLFFBQVE7SUFDcEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsUUFBUSxFQUFFLFFBQVE7SUFDbEIsT0FBTyxFQUFFLFFBQVE7SUFDakIsT0FBTyxFQUFFLFFBQVE7SUFDakIsZUFBZSxFQUFFLFFBQVE7SUFDekIsYUFBYSxFQUFFLFFBQVE7Q0FDZixDQUFDO0FBRVgsa0JBQWUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEVtYmVkQnVpbGRlciBmb3IgY3JlYXRpbmcgcmljaCBlbWJlZHNcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUVtYmVkRmllbGQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGlubGluZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRBdXRob3Ige1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgaWNvbl91cmw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRGb290ZXIge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBpY29uX3VybD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZEltYWdlIHtcclxuICB1cmw6IHN0cmluZztcclxuICBoZWlnaHQ/OiBudW1iZXI7XHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWRUaHVtYm5haWwge1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIGhlaWdodD86IG51bWJlcjtcclxuICB3aWR0aD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElFbWJlZCB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgdXJsPzogc3RyaW5nO1xyXG4gIHRpbWVzdGFtcD86IHN0cmluZztcclxuICBjb2xvcj86IG51bWJlcjtcclxuICBmb290ZXI/OiBBUElFbWJlZEZvb3RlcjtcclxuICBpbWFnZT86IEFQSUVtYmVkSW1hZ2U7XHJcbiAgdGh1bWJuYWlsPzogQVBJRW1iZWRUaHVtYm5haWw7XHJcbiAgYXV0aG9yPzogQVBJRW1iZWRBdXRob3I7XHJcbiAgZmllbGRzPzogQVBJRW1iZWRGaWVsZFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBlbWJlZHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbWJlZEJ1aWxkZXIge1xyXG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBBUElFbWJlZDtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogQVBJRW1iZWQgPSB7fSkge1xyXG4gICAgdGhpcy5kYXRhID0geyAuLi5kYXRhIH07XHJcbiAgICBpZiAoZGF0YS5maWVsZHMpIHtcclxuICAgICAgdGhpcy5kYXRhLmZpZWxkcyA9IFsuLi5kYXRhLmZpZWxkc107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0aXRsZSBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZVxyXG4gICAqL1xyXG4gIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudGl0bGUgPSB0aXRsZSA/PyB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gZGVzY3JpcHRpb24gVGhlIGRlc2NyaXB0aW9uXHJcbiAgICovXHJcbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyB8IG51bGwpOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgVVJMIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdXJsIFRoZSBVUkxcclxuICAgKi9cclxuICBzZXRVUkwodXJsOiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XHJcbiAgICB0aGlzLmRhdGEudXJsID0gdXJsID8/IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGltZXN0YW1wIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgb3IgZGF0ZVxyXG4gICAqL1xyXG4gIHNldFRpbWVzdGFtcCh0aW1lc3RhbXA6IERhdGUgfCBudW1iZXIgfCBudWxsID0gRGF0ZS5ub3coKSk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRpbWVzdGFtcCA9IHRpbWVzdGFtcCA9PT0gbnVsbCBcclxuICAgICAgPyB1bmRlZmluZWQgXHJcbiAgICAgIDogbmV3IERhdGUodGltZXN0YW1wKS50b0lTT1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIGNvbG9yIFRoZSBjb2xvciAobnVtYmVyLCBoZXggc3RyaW5nLCBvciBSR0IgYXJyYXkpXHJcbiAgICovXHJcbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlciB8IGAjJHtzdHJpbmd9YCB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IG51bGwpOiB0aGlzIHtcclxuICAgIGlmIChjb2xvciA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmRhdGEuY29sb3IgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ251bWJlcicpIHtcclxuICAgICAgdGhpcy5kYXRhLmNvbG9yID0gY29sb3I7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBjb2xvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5kYXRhLmNvbG9yID0gcGFyc2VJbnQoY29sb3IucmVwbGFjZSgnIycsICcnKSwgMTYpO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkge1xyXG4gICAgICB0aGlzLmRhdGEuY29sb3IgPSAoY29sb3JbMF0gPDwgMTYpICsgKGNvbG9yWzFdIDw8IDgpICsgY29sb3JbMl07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGZvb3RlciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGZvb3RlciBvcHRpb25zXHJcbiAgICovXHJcbiAgc2V0Rm9vdGVyKG9wdGlvbnM6IHsgdGV4dDogc3RyaW5nOyBpY29uVVJMPzogc3RyaW5nIH0gfCBudWxsKTogdGhpcyB7XHJcbiAgICBpZiAob3B0aW9ucyA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLmRhdGEuZm9vdGVyID0gdW5kZWZpbmVkO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhLmZvb3RlciA9IHtcclxuICAgICAgICB0ZXh0OiBvcHRpb25zLnRleHQsXHJcbiAgICAgICAgaWNvbl91cmw6IG9wdGlvbnMuaWNvblVSTCxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgaW1hZ2Ugb2YgdGhpcyBlbWJlZFxyXG4gICAqIEBwYXJhbSB1cmwgVGhlIGltYWdlIFVSTFxyXG4gICAqL1xyXG4gIHNldEltYWdlKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLmltYWdlID0gdXJsID09PSBudWxsID8gdW5kZWZpbmVkIDogeyB1cmwgfTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGh1bWJuYWlsIG9mIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gdXJsIFRoZSB0aHVtYm5haWwgVVJMXHJcbiAgICovXHJcbiAgc2V0VGh1bWJuYWlsKHVybDogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xyXG4gICAgdGhpcy5kYXRhLnRodW1ibmFpbCA9IHVybCA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHsgdXJsIH07XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIGF1dGhvciBvZiB0aGlzIGVtYmVkXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgVGhlIGF1dGhvciBvcHRpb25zXHJcbiAgICovXHJcbiAgc2V0QXV0aG9yKG9wdGlvbnM6IHsgbmFtZTogc3RyaW5nOyBpY29uVVJMPzogc3RyaW5nOyB1cmw/OiBzdHJpbmcgfSB8IG51bGwpOiB0aGlzIHtcclxuICAgIGlmIChvcHRpb25zID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5hdXRob3IgPSB1bmRlZmluZWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGEuYXV0aG9yID0ge1xyXG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcclxuICAgICAgICBpY29uX3VybDogb3B0aW9ucy5pY29uVVJMLFxyXG4gICAgICAgIHVybDogb3B0aW9ucy51cmwsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgZmllbGRzIHRvIHRoaXMgZW1iZWRcclxuICAgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gYWRkXHJcbiAgICovXHJcbiAgYWRkRmllbGRzKC4uLmZpZWxkczogQVBJRW1iZWRGaWVsZFtdKTogdGhpcyB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YS5maWVsZHMpIHRoaXMuZGF0YS5maWVsZHMgPSBbXTtcclxuICAgIHRoaXMuZGF0YS5maWVsZHMucHVzaCguLi5maWVsZHMpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBmaWVsZHMgb2YgdGhpcyBlbWJlZFxyXG4gICAqIEBwYXJhbSBmaWVsZHMgVGhlIGZpZWxkcyB0byBzZXRcclxuICAgKi9cclxuICBzZXRGaWVsZHMoLi4uZmllbGRzOiBBUElFbWJlZEZpZWxkW10pOiB0aGlzIHtcclxuICAgIHRoaXMuZGF0YS5maWVsZHMgPSBmaWVsZHM7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMsIHJlcGxhY2VzLCBvciBpbnNlcnRzIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc3RhcnQgYXRcclxuICAgKiBAcGFyYW0gZGVsZXRlQ291bnQgVGhlIG51bWJlciBvZiBmaWVsZHMgdG8gcmVtb3ZlXHJcbiAgICogQHBhcmFtIGZpZWxkcyBUaGUgZmllbGRzIHRvIGluc2VydFxyXG4gICAqL1xyXG4gIHNwbGljZUZpZWxkcyhpbmRleDogbnVtYmVyLCBkZWxldGVDb3VudDogbnVtYmVyLCAuLi5maWVsZHM6IEFQSUVtYmVkRmllbGRbXSk6IHRoaXMge1xyXG4gICAgaWYgKCF0aGlzLmRhdGEuZmllbGRzKSB0aGlzLmRhdGEuZmllbGRzID0gW107XHJcbiAgICB0aGlzLmRhdGEuZmllbGRzLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLmZpZWxkcyk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBlbWJlZFxyXG4gICAqL1xyXG4gIHRvSlNPTigpOiBBUElFbWJlZCB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLmRhdGEgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgZW1iZWQgYnVpbGRlciBmcm9tIGV4aXN0aW5nIGRhdGFcclxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIGVtYmVkIGRhdGEgdG8gY29weVxyXG4gICAqL1xyXG4gIHN0YXRpYyBmcm9tKG90aGVyOiBBUElFbWJlZCB8IEVtYmVkQnVpbGRlcik6IEVtYmVkQnVpbGRlciB7XHJcbiAgICByZXR1cm4gbmV3IEVtYmVkQnVpbGRlcihvdGhlciBpbnN0YW5jZW9mIEVtYmVkQnVpbGRlciA/IG90aGVyLmRhdGEgOiBvdGhlcik7XHJcbiAgfVxyXG59XHJcblxyXG4vLyBDb2xvciBjb25zdGFudHMgKERKUyBjb21wYXRpYmlsaXR5KVxyXG5leHBvcnQgY29uc3QgQ29sb3JzID0ge1xyXG4gIERlZmF1bHQ6IDB4MDAwMDAwLFxyXG4gIFdoaXRlOiAweGZmZmZmZixcclxuICBBcXVhOiAweDFhYmM5YyxcclxuICBHcmVlbjogMHg1N2YyODcsXHJcbiAgQmx1ZTogMHgzNDk4ZGIsXHJcbiAgWWVsbG93OiAweGZlZTc1YyxcclxuICBQdXJwbGU6IDB4OWI1OWI2LFxyXG4gIEx1bWlub3VzVml2aWRQaW5rOiAweGU5MWU2MyxcclxuICBGdWNoc2lhOiAweGViNDU5ZSxcclxuICBHb2xkOiAweGYxYzQwZixcclxuICBPcmFuZ2U6IDB4ZTY3ZTIyLFxyXG4gIFJlZDogMHhlZDQyNDUsXHJcbiAgR3JleTogMHg5NWE1YTYsXHJcbiAgTmF2eTogMHgzNDQ5NWUsXHJcbiAgRGFya0FxdWE6IDB4MTE4MDZhLFxyXG4gIERhcmtHcmVlbjogMHgxZjhiNGMsXHJcbiAgRGFya0JsdWU6IDB4MjA2Njk0LFxyXG4gIERhcmtQdXJwbGU6IDB4NzEzNjhhLFxyXG4gIERhcmtWaXZpZFBpbms6IDB4YWQxNDU3LFxyXG4gIERhcmtHb2xkOiAweGMyN2MwZSxcclxuICBEYXJrT3JhbmdlOiAweGE4NDMwMCxcclxuICBEYXJrUmVkOiAweDk5MmQyMixcclxuICBEYXJrR3JleTogMHg5NzljOWYsXHJcbiAgRGFya2VyR3JleTogMHg3ZjhjOGQsXHJcbiAgTGlnaHRHcmV5OiAweGJjYzBjMCxcclxuICBEYXJrTmF2eTogMHgyYzNlNTAsXHJcbiAgQmx1cnBsZTogMHg1ODY1ZjIsXHJcbiAgR3JleXBsZTogMHg5OWFhYjUsXHJcbiAgRGFya0J1dE5vdEJsYWNrOiAweDJjMmYzMyxcclxuICBOb3RRdWl0ZUJsYWNrOiAweDIzMjcyYSxcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IEVtYmVkQnVpbGRlcjtcclxuIl19