@jubbio/core 1.3.1 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/cjs/Client.d.ts +157 -0
  2. package/dist/cjs/Client.js +640 -0
  3. package/dist/cjs/builders/ActionRowBuilder.d.ts +53 -0
  4. package/dist/cjs/builders/ActionRowBuilder.js +68 -0
  5. package/dist/cjs/builders/ButtonBuilder.d.ts +77 -0
  6. package/dist/cjs/builders/ButtonBuilder.js +96 -0
  7. package/dist/cjs/builders/EmbedBuilder.d.ts +157 -0
  8. package/dist/cjs/builders/EmbedBuilder.js +208 -0
  9. package/dist/cjs/builders/ModalBuilder.d.ts +122 -0
  10. package/dist/cjs/builders/ModalBuilder.js +162 -0
  11. package/dist/cjs/builders/SelectMenuBuilder.d.ts +123 -0
  12. package/dist/cjs/builders/SelectMenuBuilder.js +165 -0
  13. package/dist/cjs/builders/SlashCommandBuilder.d.ts +197 -0
  14. package/dist/cjs/builders/SlashCommandBuilder.js +324 -0
  15. package/dist/cjs/builders/index.d.ts +9 -0
  16. package/dist/cjs/builders/index.js +26 -0
  17. package/dist/cjs/enums.d.ts +191 -0
  18. package/dist/cjs/enums.js +211 -0
  19. package/dist/cjs/index.d.ts +25 -0
  20. package/dist/cjs/index.js +130 -0
  21. package/dist/cjs/managers/BaseManager.d.ts +69 -0
  22. package/dist/cjs/managers/BaseManager.js +106 -0
  23. package/dist/cjs/managers/ChannelManager.d.ts +95 -0
  24. package/dist/cjs/managers/ChannelManager.js +205 -0
  25. package/dist/cjs/managers/GuildMemberManager.d.ts +74 -0
  26. package/dist/cjs/managers/GuildMemberManager.js +157 -0
  27. package/dist/cjs/managers/RoleManager.d.ts +84 -0
  28. package/dist/cjs/managers/RoleManager.js +207 -0
  29. package/dist/cjs/managers/index.d.ts +7 -0
  30. package/dist/cjs/managers/index.js +24 -0
  31. package/dist/cjs/rest/REST.d.ts +527 -0
  32. package/dist/cjs/rest/REST.js +904 -0
  33. package/dist/cjs/rest/index.d.ts +1 -0
  34. package/dist/cjs/rest/index.js +18 -0
  35. package/dist/cjs/sharding/ShardingManager.d.ts +179 -0
  36. package/dist/cjs/sharding/ShardingManager.js +375 -0
  37. package/dist/cjs/sharding/index.d.ts +4 -0
  38. package/dist/cjs/sharding/index.js +21 -0
  39. package/dist/cjs/structures/Channel.d.ts +122 -0
  40. package/dist/cjs/structures/Channel.js +240 -0
  41. package/dist/cjs/structures/Collection.d.ts +53 -0
  42. package/dist/cjs/structures/Collection.js +115 -0
  43. package/dist/cjs/structures/Guild.d.ts +59 -0
  44. package/dist/cjs/structures/Guild.js +94 -0
  45. package/dist/cjs/structures/GuildMember.d.ts +174 -0
  46. package/dist/cjs/structures/GuildMember.js +311 -0
  47. package/dist/cjs/structures/Interaction.d.ts +245 -0
  48. package/dist/cjs/structures/Interaction.js +450 -0
  49. package/dist/cjs/structures/Message.d.ts +98 -0
  50. package/dist/cjs/structures/Message.js +195 -0
  51. package/dist/cjs/structures/User.d.ts +37 -0
  52. package/dist/cjs/structures/User.js +65 -0
  53. package/dist/cjs/structures/index.d.ts +7 -0
  54. package/dist/cjs/structures/index.js +25 -0
  55. package/dist/cjs/structures.d.ts +1 -0
  56. package/dist/cjs/structures.js +19 -0
  57. package/dist/cjs/types.d.ts +255 -0
  58. package/dist/cjs/types.js +3 -0
  59. package/dist/cjs/utils/BitField.d.ts +66 -0
  60. package/dist/cjs/utils/BitField.js +138 -0
  61. package/dist/cjs/utils/Collection.d.ts +116 -0
  62. package/dist/cjs/utils/Collection.js +265 -0
  63. package/dist/cjs/utils/Collector.d.ts +152 -0
  64. package/dist/cjs/utils/Collector.js +314 -0
  65. package/dist/cjs/utils/DataResolver.d.ts +61 -0
  66. package/dist/cjs/utils/DataResolver.js +146 -0
  67. package/dist/cjs/utils/Formatters.d.ts +145 -0
  68. package/dist/cjs/utils/Formatters.js +213 -0
  69. package/dist/cjs/utils/IntentsBitField.d.ts +85 -0
  70. package/dist/cjs/utils/IntentsBitField.js +99 -0
  71. package/dist/cjs/utils/Partials.d.ts +104 -0
  72. package/dist/cjs/utils/Partials.js +148 -0
  73. package/dist/cjs/utils/PermissionsBitField.d.ts +118 -0
  74. package/dist/cjs/utils/PermissionsBitField.js +145 -0
  75. package/dist/cjs/utils/SnowflakeUtil.d.ts +63 -0
  76. package/dist/cjs/utils/SnowflakeUtil.js +93 -0
  77. package/dist/cjs/utils/Sweepers.d.ts +119 -0
  78. package/dist/cjs/utils/Sweepers.js +249 -0
  79. package/dist/cjs/utils/index.d.ts +13 -0
  80. package/dist/cjs/utils/index.js +30 -0
  81. package/dist/esm/Client.js +634 -0
  82. package/dist/esm/builders/ActionRowBuilder.js +64 -0
  83. package/dist/esm/builders/ButtonBuilder.js +92 -0
  84. package/dist/esm/builders/EmbedBuilder.js +204 -0
  85. package/dist/esm/builders/ModalBuilder.js +157 -0
  86. package/dist/esm/builders/SelectMenuBuilder.js +161 -0
  87. package/dist/esm/builders/SlashCommandBuilder.js +311 -0
  88. package/dist/esm/builders/index.js +10 -0
  89. package/dist/esm/enums.js +208 -0
  90. package/dist/esm/index.js +34 -0
  91. package/dist/esm/managers/BaseManager.js +100 -0
  92. package/dist/esm/managers/ChannelManager.js +200 -0
  93. package/dist/esm/managers/GuildMemberManager.js +153 -0
  94. package/dist/esm/managers/RoleManager.js +203 -0
  95. package/dist/esm/managers/index.js +8 -0
  96. package/dist/esm/rest/REST.js +900 -0
  97. package/dist/esm/rest/index.js +2 -0
  98. package/dist/esm/sharding/ShardingManager.js +366 -0
  99. package/dist/esm/sharding/index.js +5 -0
  100. package/dist/esm/structures/Channel.js +232 -0
  101. package/dist/esm/structures/Collection.js +111 -0
  102. package/dist/esm/structures/Guild.js +90 -0
  103. package/dist/esm/structures/GuildMember.js +306 -0
  104. package/dist/esm/structures/Interaction.js +438 -0
  105. package/dist/esm/structures/Message.js +191 -0
  106. package/dist/esm/structures/User.js +61 -0
  107. package/dist/esm/structures/index.js +9 -0
  108. package/dist/esm/structures.js +3 -0
  109. package/dist/esm/types.js +2 -0
  110. package/dist/esm/utils/BitField.js +134 -0
  111. package/dist/esm/utils/Collection.js +261 -0
  112. package/dist/esm/utils/Collector.js +305 -0
  113. package/dist/esm/utils/DataResolver.js +142 -0
  114. package/dist/esm/utils/Formatters.js +191 -0
  115. package/dist/esm/utils/IntentsBitField.js +93 -0
  116. package/dist/esm/utils/Partials.js +137 -0
  117. package/dist/esm/utils/PermissionsBitField.js +141 -0
  118. package/dist/esm/utils/SnowflakeUtil.js +89 -0
  119. package/dist/esm/utils/Sweepers.js +245 -0
  120. package/dist/esm/utils/index.js +14 -0
  121. package/package.json +14 -4
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VsZWN0TWVudUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYnVpbGRlcnMvU2VsZWN0TWVudUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFvQkg7O0dBRUc7QUFDSCxNQUFhLHVCQUF1QjtJQUNsQixJQUFJLENBQWtDO0lBRXRELFlBQVksT0FBd0MsRUFBRTtRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLFdBQW1CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDakMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLFFBQVEsR0FBRyxJQUFJO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsR0FBRyxPQUE4QjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxHQUFHLE9BQThCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxHQUFHLE9BQThCO1FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUE0QixDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWdFO1FBQzFFLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQyxLQUFLLFlBQVksdUJBQXVCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRjtBQWxHRCwwREFrR0M7QUFzRW1DLG9EQUFpQjtBQXBFckQ7O0dBRUc7QUFDSCxNQUFhLDZCQUE2QjtJQUN4QixJQUFJLENBQStCO0lBRW5ELFlBQVksT0FBcUMsRUFBRTtRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxLQUFrRTtRQUN6RSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUk7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQXlCLENBQUM7SUFDakQsQ0FBQztDQUNGO0FBOURELHNFQThEQztBQUtELGtCQUFlLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZWxlY3RNZW51QnVpbGRlciBmb3IgY3JlYXRpbmcgc2VsZWN0IG1lbnVzXG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBBUElTZWxlY3RNZW51T3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGVtb2ppPzogeyBpZD86IHN0cmluZzsgbmFtZT86IHN0cmluZzsgYW5pbWF0ZWQ/OiBib29sZWFuIH07XG4gIGRlZmF1bHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVNlbGVjdE1lbnVDb21wb25lbnQge1xuICB0eXBlOiAzO1xuICBjdXN0b21faWQ6IHN0cmluZztcbiAgb3B0aW9ucz86IEFQSVNlbGVjdE1lbnVPcHRpb25bXTtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIG1pbl92YWx1ZXM/OiBudW1iZXI7XG4gIG1heF92YWx1ZXM/OiBudW1iZXI7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIHN0cmluZyBzZWxlY3QgbWVudXNcbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyIHtcbiAgcHVibGljIHJlYWRvbmx5IGRhdGE6IFBhcnRpYWw8QVBJU2VsZWN0TWVudUNvbXBvbmVudD47XG5cbiAgY29uc3RydWN0b3IoZGF0YTogUGFydGlhbDxBUElTZWxlY3RNZW51Q29tcG9uZW50PiA9IHt9KSB7XG4gICAgdGhpcy5kYXRhID0geyB0eXBlOiAzLCAuLi5kYXRhIH07XG4gICAgaWYgKCF0aGlzLmRhdGEub3B0aW9ucykgdGhpcy5kYXRhLm9wdGlvbnMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjdXN0b20gSUQgb2YgdGhpcyBzZWxlY3QgbWVudVxuICAgKiBAcGFyYW0gY3VzdG9tSWQgVGhlIGN1c3RvbSBJRFxuICAgKi9cbiAgc2V0Q3VzdG9tSWQoY3VzdG9tSWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5jdXN0b21faWQgPSBjdXN0b21JZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwbGFjZWhvbGRlciBvZiB0aGlzIHNlbGVjdCBtZW51XG4gICAqIEBwYXJhbSBwbGFjZWhvbGRlciBUaGUgcGxhY2Vob2xkZXJcbiAgICovXG4gIHNldFBsYWNlaG9sZGVyKHBsYWNlaG9sZGVyOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEucGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtaW5pbXVtIHZhbHVlcyBvZiB0aGlzIHNlbGVjdCBtZW51XG4gICAqIEBwYXJhbSBtaW5WYWx1ZXMgVGhlIG1pbmltdW0gdmFsdWVzXG4gICAqL1xuICBzZXRNaW5WYWx1ZXMobWluVmFsdWVzOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEubWluX3ZhbHVlcyA9IG1pblZhbHVlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtYXhpbXVtIHZhbHVlcyBvZiB0aGlzIHNlbGVjdCBtZW51XG4gICAqIEBwYXJhbSBtYXhWYWx1ZXMgVGhlIG1heGltdW0gdmFsdWVzXG4gICAqL1xuICBzZXRNYXhWYWx1ZXMobWF4VmFsdWVzOiBudW1iZXIpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEubWF4X3ZhbHVlcyA9IG1heFZhbHVlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBzZWxlY3QgbWVudSBpcyBkaXNhYmxlZFxuICAgKiBAcGFyYW0gZGlzYWJsZWQgV2hldGhlciB0aGUgc2VsZWN0IG1lbnUgaXMgZGlzYWJsZWRcbiAgICovXG4gIHNldERpc2FibGVkKGRpc2FibGVkID0gdHJ1ZSk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgb3B0aW9ucyB0byB0aGlzIHNlbGVjdCBtZW51XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIGFkZFxuICAgKi9cbiAgYWRkT3B0aW9ucyguLi5vcHRpb25zOiBBUElTZWxlY3RNZW51T3B0aW9uW10pOiB0aGlzIHtcbiAgICBpZiAoIXRoaXMuZGF0YS5vcHRpb25zKSB0aGlzLmRhdGEub3B0aW9ucyA9IFtdO1xuICAgIHRoaXMuZGF0YS5vcHRpb25zLnB1c2goLi4ub3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBvZiB0aGlzIHNlbGVjdCBtZW51XG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIHNldFxuICAgKi9cbiAgc2V0T3B0aW9ucyguLi5vcHRpb25zOiBBUElTZWxlY3RNZW51T3B0aW9uW10pOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcywgcmVwbGFjZXMsIG9yIGluc2VydHMgb3B0aW9uc1xuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IHRvIHN0YXJ0IGF0XG4gICAqIEBwYXJhbSBkZWxldGVDb3VudCBUaGUgbnVtYmVyIG9mIG9wdGlvbnMgdG8gcmVtb3ZlXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIHRvIGluc2VydFxuICAgKi9cbiAgc3BsaWNlT3B0aW9ucyhpbmRleDogbnVtYmVyLCBkZWxldGVDb3VudDogbnVtYmVyLCAuLi5vcHRpb25zOiBBUElTZWxlY3RNZW51T3B0aW9uW10pOiB0aGlzIHtcbiAgICBpZiAoIXRoaXMuZGF0YS5vcHRpb25zKSB0aGlzLmRhdGEub3B0aW9ucyA9IFtdO1xuICAgIHRoaXMuZGF0YS5vcHRpb25zLnNwbGljZShpbmRleCwgZGVsZXRlQ291bnQsIC4uLm9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZWxlY3QgbWVudVxuICAgKi9cbiAgdG9KU09OKCk6IEFQSVNlbGVjdE1lbnVDb21wb25lbnQge1xuICAgIHJldHVybiB7IC4uLnRoaXMuZGF0YSB9IGFzIEFQSVNlbGVjdE1lbnVDb21wb25lbnQ7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBzZWxlY3QgbWVudSBidWlsZGVyIGZyb20gZXhpc3RpbmcgZGF0YVxuICAgKiBAcGFyYW0gb3RoZXIgVGhlIHNlbGVjdCBtZW51IGRhdGEgdG8gY29weVxuICAgKi9cbiAgc3RhdGljIGZyb20ob3RoZXI6IFBhcnRpYWw8QVBJU2VsZWN0TWVudUNvbXBvbmVudD4gfCBTdHJpbmdTZWxlY3RNZW51QnVpbGRlcik6IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyKG90aGVyIGluc3RhbmNlb2YgU3RyaW5nU2VsZWN0TWVudUJ1aWxkZXIgPyBvdGhlci5kYXRhIDogb3RoZXIpO1xuICB9XG59XG5cbi8qKlxuICogQSBidWlsZGVyIGZvciBjcmVhdGluZyBzZWxlY3QgbWVudSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdHJpbmdTZWxlY3RNZW51T3B0aW9uQnVpbGRlciB7XG4gIHB1YmxpYyByZWFkb25seSBkYXRhOiBQYXJ0aWFsPEFQSVNlbGVjdE1lbnVPcHRpb24+O1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8QVBJU2VsZWN0TWVudU9wdGlvbj4gPSB7fSkge1xuICAgIHRoaXMuZGF0YSA9IHsgLi4uZGF0YSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGxhYmVsIG9mIHRoaXMgb3B0aW9uXG4gICAqIEBwYXJhbSBsYWJlbCBUaGUgbGFiZWxcbiAgICovXG4gIHNldExhYmVsKGxhYmVsOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEubGFiZWwgPSBsYWJlbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvblxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlXG4gICAqL1xuICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy5kYXRhLnZhbHVlID0gdmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBvcHRpb25cbiAgICogQHBhcmFtIGRlc2NyaXB0aW9uIFRoZSBkZXNjcmlwdGlvblxuICAgKi9cbiAgc2V0RGVzY3JpcHRpb24oZGVzY3JpcHRpb246IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMuZGF0YS5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGVtb2ppIG9mIHRoaXMgb3B0aW9uXG4gICAqIEBwYXJhbSBlbW9qaSBUaGUgZW1vamlcbiAgICovXG4gIHNldEVtb2ppKGVtb2ppOiB7IGlkPzogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBhbmltYXRlZD86IGJvb2xlYW4gfSB8IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICh0eXBlb2YgZW1vamkgPT09ICdzdHJpbmcnKSB7XG4gICAgICB0aGlzLmRhdGEuZW1vamkgPSB7IG5hbWU6IGVtb2ppIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZGF0YS5lbW9qaSA9IGVtb2ppO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBvcHRpb24gaXMgdGhlIGRlZmF1bHRcbiAgICogQHBhcmFtIGlzRGVmYXVsdCBXaGV0aGVyIHRoaXMgb3B0aW9uIGlzIHRoZSBkZWZhdWx0XG4gICAqL1xuICBzZXREZWZhdWx0KGlzRGVmYXVsdCA9IHRydWUpOiB0aGlzIHtcbiAgICB0aGlzLmRhdGEuZGVmYXVsdCA9IGlzRGVmYXVsdDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgb3B0aW9uXG4gICAqL1xuICB0b0pTT04oKTogQVBJU2VsZWN0TWVudU9wdGlvbiB7XG4gICAgcmV0dXJuIHsgLi4udGhpcy5kYXRhIH0gYXMgQVBJU2VsZWN0TWVudU9wdGlvbjtcbiAgfVxufVxuXG4vLyBBbGlhcyBmb3IgREpTIGNvbXBhdGliaWxpdHlcbmV4cG9ydCB7IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyIGFzIFNlbGVjdE1lbnVCdWlsZGVyIH07XG5cbmV4cG9ydCBkZWZhdWx0IFN0cmluZ1NlbGVjdE1lbnVCdWlsZGVyO1xuIl19
@@ -0,0 +1,197 @@
1
+ /**
2
+ * SlashCommandBuilder for creating slash commands
3
+ */
4
+ /**
5
+ * Application command option types
6
+ */
7
+ export declare enum ApplicationCommandOptionType {
8
+ Subcommand = 1,
9
+ SubcommandGroup = 2,
10
+ String = 3,
11
+ Integer = 4,
12
+ Boolean = 5,
13
+ User = 6,
14
+ Channel = 7,
15
+ Role = 8,
16
+ Mentionable = 9,
17
+ Number = 10,
18
+ Attachment = 11
19
+ }
20
+ export interface APIApplicationCommandOptionChoice {
21
+ name: string;
22
+ value: string | number;
23
+ }
24
+ export interface APIApplicationCommandOption {
25
+ type: ApplicationCommandOptionType;
26
+ name: string;
27
+ description: string;
28
+ required?: boolean;
29
+ choices?: APIApplicationCommandOptionChoice[];
30
+ options?: APIApplicationCommandOption[];
31
+ min_value?: number;
32
+ max_value?: number;
33
+ min_length?: number;
34
+ max_length?: number;
35
+ autocomplete?: boolean;
36
+ channel_types?: number[];
37
+ }
38
+ export interface APIApplicationCommand {
39
+ name: string;
40
+ description: string;
41
+ options?: APIApplicationCommandOption[];
42
+ default_member_permissions?: string;
43
+ dm_permission?: boolean;
44
+ nsfw?: boolean;
45
+ }
46
+ /**
47
+ * A builder for creating slash command options
48
+ */
49
+ declare class SlashCommandOptionBuilder {
50
+ protected data: Partial<APIApplicationCommandOption>;
51
+ constructor(type: ApplicationCommandOptionType);
52
+ setName(name: string): this;
53
+ setDescription(description: string): this;
54
+ setRequired(required?: boolean): this;
55
+ toJSON(): APIApplicationCommandOption;
56
+ }
57
+ /**
58
+ * String option builder
59
+ */
60
+ export declare class SlashCommandStringOption extends SlashCommandOptionBuilder {
61
+ constructor();
62
+ addChoices(...choices: APIApplicationCommandOptionChoice[]): this;
63
+ setChoices(...choices: APIApplicationCommandOptionChoice[]): this;
64
+ setMinLength(minLength: number): this;
65
+ setMaxLength(maxLength: number): this;
66
+ setAutocomplete(autocomplete?: boolean): this;
67
+ }
68
+ /**
69
+ * Integer option builder
70
+ */
71
+ export declare class SlashCommandIntegerOption extends SlashCommandOptionBuilder {
72
+ constructor();
73
+ addChoices(...choices: APIApplicationCommandOptionChoice[]): this;
74
+ setMinValue(minValue: number): this;
75
+ setMaxValue(maxValue: number): this;
76
+ setAutocomplete(autocomplete?: boolean): this;
77
+ }
78
+ /**
79
+ * Number option builder
80
+ */
81
+ export declare class SlashCommandNumberOption extends SlashCommandOptionBuilder {
82
+ constructor();
83
+ addChoices(...choices: APIApplicationCommandOptionChoice[]): this;
84
+ setMinValue(minValue: number): this;
85
+ setMaxValue(maxValue: number): this;
86
+ setAutocomplete(autocomplete?: boolean): this;
87
+ }
88
+ /**
89
+ * Boolean option builder
90
+ */
91
+ export declare class SlashCommandBooleanOption extends SlashCommandOptionBuilder {
92
+ constructor();
93
+ }
94
+ /**
95
+ * User option builder
96
+ */
97
+ export declare class SlashCommandUserOption extends SlashCommandOptionBuilder {
98
+ constructor();
99
+ }
100
+ /**
101
+ * Channel option builder
102
+ */
103
+ export declare class SlashCommandChannelOption extends SlashCommandOptionBuilder {
104
+ constructor();
105
+ addChannelTypes(...types: number[]): this;
106
+ }
107
+ /**
108
+ * Role option builder
109
+ */
110
+ export declare class SlashCommandRoleOption extends SlashCommandOptionBuilder {
111
+ constructor();
112
+ }
113
+ /**
114
+ * Mentionable option builder
115
+ */
116
+ export declare class SlashCommandMentionableOption extends SlashCommandOptionBuilder {
117
+ constructor();
118
+ }
119
+ /**
120
+ * Attachment option builder
121
+ */
122
+ export declare class SlashCommandAttachmentOption extends SlashCommandOptionBuilder {
123
+ constructor();
124
+ }
125
+ /**
126
+ * A builder for creating slash commands
127
+ */
128
+ export declare class SlashCommandBuilder {
129
+ readonly data: Partial<APIApplicationCommand>;
130
+ constructor();
131
+ /**
132
+ * Sets the name of this command
133
+ * @param name The name
134
+ */
135
+ setName(name: string): this;
136
+ /**
137
+ * Sets the description of this command
138
+ * @param description The description
139
+ */
140
+ setDescription(description: string): this;
141
+ /**
142
+ * Sets the default member permissions required to use this command
143
+ * @param permissions The permissions
144
+ */
145
+ setDefaultMemberPermissions(permissions: bigint | string | null): this;
146
+ /**
147
+ * Sets whether this command is available in DMs
148
+ * @param enabled Whether the command is available in DMs
149
+ */
150
+ setDMPermission(enabled: boolean): this;
151
+ /**
152
+ * Sets whether this command is NSFW
153
+ * @param nsfw Whether the command is NSFW
154
+ */
155
+ setNSFW(nsfw?: boolean): this;
156
+ /**
157
+ * Adds a string option
158
+ */
159
+ addStringOption(fn: (option: SlashCommandStringOption) => SlashCommandStringOption): this;
160
+ /**
161
+ * Adds an integer option
162
+ */
163
+ addIntegerOption(fn: (option: SlashCommandIntegerOption) => SlashCommandIntegerOption): this;
164
+ /**
165
+ * Adds a number option
166
+ */
167
+ addNumberOption(fn: (option: SlashCommandNumberOption) => SlashCommandNumberOption): this;
168
+ /**
169
+ * Adds a boolean option
170
+ */
171
+ addBooleanOption(fn: (option: SlashCommandBooleanOption) => SlashCommandBooleanOption): this;
172
+ /**
173
+ * Adds a user option
174
+ */
175
+ addUserOption(fn: (option: SlashCommandUserOption) => SlashCommandUserOption): this;
176
+ /**
177
+ * Adds a channel option
178
+ */
179
+ addChannelOption(fn: (option: SlashCommandChannelOption) => SlashCommandChannelOption): this;
180
+ /**
181
+ * Adds a role option
182
+ */
183
+ addRoleOption(fn: (option: SlashCommandRoleOption) => SlashCommandRoleOption): this;
184
+ /**
185
+ * Adds a mentionable option
186
+ */
187
+ addMentionableOption(fn: (option: SlashCommandMentionableOption) => SlashCommandMentionableOption): this;
188
+ /**
189
+ * Adds an attachment option
190
+ */
191
+ addAttachmentOption(fn: (option: SlashCommandAttachmentOption) => SlashCommandAttachmentOption): this;
192
+ /**
193
+ * Returns the JSON representation of this command
194
+ */
195
+ toJSON(): APIApplicationCommand;
196
+ }
197
+ export default SlashCommandBuilder;