lunibee 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +223 -223
- package/dist/builders/commands.d.ts +39 -0
- package/dist/builders/components.d.ts +37 -12
- package/dist/builders/embed.d.ts +3 -1
- package/dist/builders/index.d.ts +2 -2
- package/dist/builders/index.js +192 -29
- package/dist/builders/index.js.map +9 -7
- package/dist/collection/index.d.ts +30 -0
- package/dist/collection/index.js +79 -5
- package/dist/collection/index.js.map +4 -4
- package/dist/core/events.d.ts +88 -2
- package/dist/core/index.d.ts +46 -85
- package/dist/core/index.js +2395 -789
- package/dist/core/index.js.map +44 -22
- package/dist/core/permissions.d.ts +112 -53
- package/dist/formatters/index.d.ts +43 -3
- package/dist/formatters/index.js +64 -1
- package/dist/formatters/index.js.map +3 -3
- package/dist/handlers/index.js.map +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3783 -1009
- package/dist/index.js.map +63 -38
- package/dist/managers/emoji.d.ts +38 -0
- package/dist/managers/guild-resources.d.ts +109 -0
- package/dist/managers/guild.d.ts +117 -1
- package/dist/managers/index.d.ts +37 -1
- package/dist/managers/index.js +1125 -81
- package/dist/managers/index.js.map +25 -20
- package/dist/rest/decoder.d.ts +23 -0
- package/dist/rest/errors.d.ts +20 -0
- package/dist/rest/index.d.ts +119 -25
- package/dist/rest/index.js +676 -204
- package/dist/rest/index.js.map +14 -6
- package/dist/rest/limiter.d.ts +42 -0
- package/dist/rest/redis.d.ts +54 -0
- package/dist/rest/route.d.ts +31 -0
- package/dist/rest/routes.d.ts +24 -0
- package/dist/rest/scheduler.d.ts +42 -0
- package/dist/rest/store.d.ts +67 -0
- package/dist/rest/transport.d.ts +40 -0
- package/dist/rest/webhook.d.ts +2 -2
- package/dist/sharding/bus.d.ts +31 -0
- package/dist/sharding/cluster.d.ts +71 -0
- package/dist/sharding/index.d.ts +18 -2
- package/dist/sharding/index.js +1202 -317
- package/dist/sharding/index.js.map +18 -7
- package/dist/structures/audit-log.d.ts +26 -0
- package/dist/structures/base.d.ts +40 -0
- package/dist/structures/channels.d.ts +56 -0
- package/dist/structures/index.d.ts +30 -1
- package/dist/structures/index.js +963 -87
- package/dist/structures/index.js.map +17 -10
- package/dist/structures/interactions.d.ts +12 -52
- package/dist/structures/options.d.ts +55 -0
- package/dist/structures/resources.d.ts +194 -6
- package/dist/types/gateway-events.d.ts +132 -0
- package/dist/types/gateway.d.ts +181 -0
- package/dist/types/index.d.ts +78 -263
- package/dist/types/index.js +44 -2
- package/dist/types/index.js.map +5 -4
- package/dist/utils/index.js.map +2 -2
- package/dist/voice/index.d.ts +116 -0
- package/dist/voice/index.js +261 -10
- package/dist/voice/index.js.map +3 -3
- package/dist/ws/close-codes.d.ts +23 -0
- package/dist/ws/decoder.d.ts +58 -0
- package/dist/ws/heartbeat.d.ts +87 -0
- package/dist/ws/index.d.ts +24 -32
- package/dist/ws/index.js +920 -318
- package/dist/ws/index.js.map +15 -5
- package/dist/ws/opcodes.d.ts +14 -0
- package/dist/ws/protocol.d.ts +110 -0
- package/dist/ws/reconnect.d.ts +108 -0
- package/dist/ws/send-budget.d.ts +17 -0
- package/dist/ws/session.d.ts +100 -0
- package/dist/ws/state.d.ts +27 -0
- package/dist/ws/transport.d.ts +80 -0
- package/package.json +23 -22
- package/dist/structures/permissions.d.ts +0 -73
package/dist/builders/index.js
CHANGED
|
@@ -53,16 +53,20 @@ class EmbedBuilder {
|
|
|
53
53
|
return this;
|
|
54
54
|
}
|
|
55
55
|
addFields(...fields) {
|
|
56
|
-
|
|
56
|
+
const resolved = fields.length === 1 && Array.isArray(fields[0]) ? fields[0] : fields;
|
|
57
|
+
if (!resolved.length)
|
|
57
58
|
throw new TypeError("At least one embed field is required.");
|
|
58
59
|
const current = this.#data.fields ?? [];
|
|
59
|
-
if (current.length +
|
|
60
|
+
if (current.length + resolved.length > 25)
|
|
60
61
|
throw new RangeError("An embed cannot contain more than 25 fields.");
|
|
61
|
-
for (const field of
|
|
62
|
+
for (const field of resolved) {
|
|
62
63
|
validate(field.name, 256, "Embed field name");
|
|
63
64
|
validate(field.value, 1024, "Embed field value");
|
|
64
65
|
}
|
|
65
|
-
this.#data.fields = [
|
|
66
|
+
this.#data.fields = [
|
|
67
|
+
...current,
|
|
68
|
+
...resolved.map((field) => ({ ...field }))
|
|
69
|
+
];
|
|
66
70
|
return this;
|
|
67
71
|
}
|
|
68
72
|
setFields(fields) {
|
|
@@ -110,6 +114,68 @@ function url(value, field) {
|
|
|
110
114
|
throw new TypeError(`${field} must be a valid URL.`, { cause: error });
|
|
111
115
|
}
|
|
112
116
|
}
|
|
117
|
+
// packages/types/src/gateway.ts
|
|
118
|
+
var GatewayIntentBits = {
|
|
119
|
+
Guilds: 1 << 0,
|
|
120
|
+
GuildMembers: 1 << 1,
|
|
121
|
+
GuildModeration: 1 << 2,
|
|
122
|
+
GuildExpressions: 1 << 3,
|
|
123
|
+
GuildIntegrations: 1 << 4,
|
|
124
|
+
GuildWebhooks: 1 << 5,
|
|
125
|
+
GuildInvites: 1 << 6,
|
|
126
|
+
GuildVoiceStates: 1 << 7,
|
|
127
|
+
GuildPresences: 1 << 8,
|
|
128
|
+
GuildMessages: 1 << 9,
|
|
129
|
+
GuildMessageReactions: 1 << 10,
|
|
130
|
+
GuildMessageTyping: 1 << 11,
|
|
131
|
+
DirectMessages: 1 << 12,
|
|
132
|
+
DirectMessageReactions: 1 << 13,
|
|
133
|
+
DirectMessageTyping: 1 << 14,
|
|
134
|
+
MessageContent: 1 << 15,
|
|
135
|
+
GuildScheduledEvents: 1 << 16,
|
|
136
|
+
AutoModerationConfiguration: 1 << 20,
|
|
137
|
+
AutoModerationExecution: 1 << 21,
|
|
138
|
+
GuildMessagePolls: 1 << 24,
|
|
139
|
+
DirectMessagePolls: 1 << 25
|
|
140
|
+
};
|
|
141
|
+
var IntentBits = {
|
|
142
|
+
guild: 1 << 0,
|
|
143
|
+
guilds: 1 << 0,
|
|
144
|
+
guildMembers: 1 << 1,
|
|
145
|
+
guildModeration: 1 << 2,
|
|
146
|
+
guildBans: 1 << 2,
|
|
147
|
+
guildExpressions: 1 << 3,
|
|
148
|
+
guildEmojis: 1 << 3,
|
|
149
|
+
guildEmojisAndStickers: 1 << 3,
|
|
150
|
+
guildIntegrations: 1 << 4,
|
|
151
|
+
guildWebhooks: 1 << 5,
|
|
152
|
+
guildInvites: 1 << 6,
|
|
153
|
+
guildVoiceStates: 1 << 7,
|
|
154
|
+
guildPresences: 1 << 8,
|
|
155
|
+
guildMessages: 1 << 9,
|
|
156
|
+
guildMessage: 1 << 9,
|
|
157
|
+
guildMessageReactions: 1 << 10,
|
|
158
|
+
guildMessageTyping: 1 << 11,
|
|
159
|
+
directMessages: 1 << 12,
|
|
160
|
+
directMessageReactions: 1 << 13,
|
|
161
|
+
directMessageTyping: 1 << 14,
|
|
162
|
+
messageContent: 1 << 15,
|
|
163
|
+
guildScheduledEvents: 1 << 16,
|
|
164
|
+
autoModerationConfiguration: 1 << 20,
|
|
165
|
+
autoModerationExecution: 1 << 21,
|
|
166
|
+
guildMessagePolls: 1 << 24,
|
|
167
|
+
directMessagePolls: 1 << 25
|
|
168
|
+
};
|
|
169
|
+
// packages/types/src/index.ts
|
|
170
|
+
var ButtonStyle = {
|
|
171
|
+
Primary: 1,
|
|
172
|
+
Secondary: 2,
|
|
173
|
+
Success: 3,
|
|
174
|
+
Danger: 4,
|
|
175
|
+
Link: 5,
|
|
176
|
+
Premium: 6
|
|
177
|
+
};
|
|
178
|
+
|
|
113
179
|
// packages/builders/src/components.ts
|
|
114
180
|
var ComponentType = {
|
|
115
181
|
ActionRow: 1,
|
|
@@ -129,13 +195,6 @@ var ComponentType = {
|
|
|
129
195
|
ContentInventoryEntry: 16,
|
|
130
196
|
Container: 17
|
|
131
197
|
};
|
|
132
|
-
var ButtonStyle = {
|
|
133
|
-
Primary: 1,
|
|
134
|
-
Secondary: 2,
|
|
135
|
-
Success: 3,
|
|
136
|
-
Danger: 4,
|
|
137
|
-
Link: 5
|
|
138
|
-
};
|
|
139
198
|
var TextInputStyle = { Short: 1, Paragraph: 2 };
|
|
140
199
|
|
|
141
200
|
class ActionRowBuilder {
|
|
@@ -240,15 +299,17 @@ class ButtonBuilder {
|
|
|
240
299
|
}
|
|
241
300
|
setURL(value) {
|
|
242
301
|
validateText(value, 512, "Button URL");
|
|
243
|
-
let
|
|
302
|
+
let url;
|
|
244
303
|
try {
|
|
245
|
-
|
|
304
|
+
url = new URL(value);
|
|
246
305
|
} catch (error) {
|
|
247
|
-
throw new TypeError("Button URL must be a valid URL.", {
|
|
306
|
+
throw new TypeError("Button URL must be a valid URL.", {
|
|
307
|
+
cause: error
|
|
308
|
+
});
|
|
248
309
|
}
|
|
249
310
|
this.#data.style = ButtonStyle.Link;
|
|
250
311
|
delete this.#data.custom_id;
|
|
251
|
-
this.#data.url =
|
|
312
|
+
this.#data.url = url.toString();
|
|
252
313
|
return this;
|
|
253
314
|
}
|
|
254
315
|
setEmoji(emoji) {
|
|
@@ -300,7 +361,7 @@ class EntitySelectBuilder {
|
|
|
300
361
|
return this;
|
|
301
362
|
}
|
|
302
363
|
setDefaultValues(...values) {
|
|
303
|
-
this.#data.default_values = values;
|
|
364
|
+
this.#data.default_values = values.map((value) => ({ ...value }));
|
|
304
365
|
return this;
|
|
305
366
|
}
|
|
306
367
|
toJSON() {
|
|
@@ -391,6 +452,7 @@ class TextInputBuilder {
|
|
|
391
452
|
class ContainerBuilder {
|
|
392
453
|
#components = [];
|
|
393
454
|
#accentColor;
|
|
455
|
+
#spoiler;
|
|
394
456
|
addComponents(...components) {
|
|
395
457
|
if (!components.length)
|
|
396
458
|
throw new TypeError("At least one component is required.");
|
|
@@ -404,12 +466,20 @@ class ContainerBuilder {
|
|
|
404
466
|
this.#accentColor = color;
|
|
405
467
|
return this;
|
|
406
468
|
}
|
|
469
|
+
setSpoiler(spoiler = true) {
|
|
470
|
+
this.#spoiler = spoiler;
|
|
471
|
+
return this;
|
|
472
|
+
}
|
|
407
473
|
toJSON() {
|
|
408
|
-
|
|
474
|
+
const data = {
|
|
409
475
|
type: ComponentType.Container,
|
|
410
|
-
components: this.#components.map((c) => c.toJSON())
|
|
411
|
-
accent_color: this.#accentColor
|
|
476
|
+
components: this.#components.map((c) => c.toJSON())
|
|
412
477
|
};
|
|
478
|
+
if (this.#accentColor !== undefined)
|
|
479
|
+
data.accent_color = this.#accentColor;
|
|
480
|
+
if (this.#spoiler !== undefined)
|
|
481
|
+
data.spoiler = this.#spoiler;
|
|
482
|
+
return data;
|
|
413
483
|
}
|
|
414
484
|
}
|
|
415
485
|
|
|
@@ -473,9 +543,9 @@ class MediaGalleryBuilder {
|
|
|
473
543
|
class FileComponentBuilder {
|
|
474
544
|
#url = "";
|
|
475
545
|
#spoiler;
|
|
476
|
-
setUrl(
|
|
477
|
-
validateText(
|
|
478
|
-
this.#url =
|
|
546
|
+
setUrl(url) {
|
|
547
|
+
validateText(url, 2048, "File component URL");
|
|
548
|
+
this.#url = url;
|
|
479
549
|
return this;
|
|
480
550
|
}
|
|
481
551
|
setSpoiler(spoiler = true) {
|
|
@@ -520,16 +590,32 @@ class SeparatorBuilder {
|
|
|
520
590
|
|
|
521
591
|
class ThumbnailBuilder {
|
|
522
592
|
#url = "";
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
593
|
+
#description;
|
|
594
|
+
#spoiler;
|
|
595
|
+
setUrl(url) {
|
|
596
|
+
validateText(url, 2048, "Thumbnail URL");
|
|
597
|
+
this.#url = url;
|
|
598
|
+
return this;
|
|
599
|
+
}
|
|
600
|
+
setDescription(description) {
|
|
601
|
+
validateText(description, 1024, "Thumbnail description");
|
|
602
|
+
this.#description = description;
|
|
603
|
+
return this;
|
|
604
|
+
}
|
|
605
|
+
setSpoiler(spoiler = true) {
|
|
606
|
+
this.#spoiler = spoiler;
|
|
526
607
|
return this;
|
|
527
608
|
}
|
|
528
609
|
toJSON() {
|
|
529
|
-
|
|
610
|
+
const data = {
|
|
530
611
|
type: ComponentType.Thumbnail,
|
|
531
612
|
url: this.#url
|
|
532
613
|
};
|
|
614
|
+
if (this.#description !== undefined)
|
|
615
|
+
data.description = this.#description;
|
|
616
|
+
if (this.#spoiler !== undefined)
|
|
617
|
+
data.spoiler = this.#spoiler;
|
|
618
|
+
return data;
|
|
533
619
|
}
|
|
534
620
|
}
|
|
535
621
|
|
|
@@ -563,6 +649,29 @@ function validateLength(value, field, max = 4000) {
|
|
|
563
649
|
if (!Number.isInteger(value) || value < 0 || value > max)
|
|
564
650
|
throw new RangeError(`${field} must be an integer between 0 and ${max}.`);
|
|
565
651
|
}
|
|
652
|
+
class UserSelectMenuBuilder extends EntitySelectBuilder {
|
|
653
|
+
constructor() {
|
|
654
|
+
super(ComponentType.UserSelect);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
class RoleSelectMenuBuilder extends EntitySelectBuilder {
|
|
659
|
+
constructor() {
|
|
660
|
+
super(ComponentType.RoleSelect);
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
class MentionableSelectMenuBuilder extends EntitySelectBuilder {
|
|
665
|
+
constructor() {
|
|
666
|
+
super(ComponentType.MentionableSelect);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
class ChannelSelectMenuBuilder extends EntitySelectBuilder {
|
|
671
|
+
constructor() {
|
|
672
|
+
super(ComponentType.ChannelSelect);
|
|
673
|
+
}
|
|
674
|
+
}
|
|
566
675
|
// packages/builders/src/commands.ts
|
|
567
676
|
var ApplicationCommandOptionType = {
|
|
568
677
|
Subcommand: 1,
|
|
@@ -918,6 +1027,52 @@ function validateNumberRange(value, minimum, maximum, field, integerOnly = true)
|
|
|
918
1027
|
if (!Number.isFinite(value) || integerOnly && !Number.isInteger(value) || value < minimum || value > maximum)
|
|
919
1028
|
throw new RangeError(`${field} must be ${integerOnly ? "an integer" : "a number"} between ${minimum} and ${maximum}.`);
|
|
920
1029
|
}
|
|
1030
|
+
|
|
1031
|
+
class ContextMenuCommandBuilder {
|
|
1032
|
+
data;
|
|
1033
|
+
constructor(type = 2) {
|
|
1034
|
+
this.data = { type };
|
|
1035
|
+
}
|
|
1036
|
+
setType(type) {
|
|
1037
|
+
if (type !== 2 && type !== 3)
|
|
1038
|
+
throw new RangeError("Context menu command type must be 2 or 3.");
|
|
1039
|
+
this.data.type = type;
|
|
1040
|
+
return this;
|
|
1041
|
+
}
|
|
1042
|
+
setName(name) {
|
|
1043
|
+
if (typeof name !== "string" || name.trim().length < 1 || name.length > 32)
|
|
1044
|
+
throw new RangeError("Command name must contain 1-32 characters.");
|
|
1045
|
+
this.data.name = name;
|
|
1046
|
+
return this;
|
|
1047
|
+
}
|
|
1048
|
+
setDefaultMemberPermissions(permissions) {
|
|
1049
|
+
this.data.default_member_permissions = permissions === null ? null : BigInt(permissions).toString();
|
|
1050
|
+
return this;
|
|
1051
|
+
}
|
|
1052
|
+
setDMPermission(enabled) {
|
|
1053
|
+
this.data.dm_permission = enabled;
|
|
1054
|
+
return this;
|
|
1055
|
+
}
|
|
1056
|
+
setIntegrationTypes(...types) {
|
|
1057
|
+
this.data.integration_types = [...types];
|
|
1058
|
+
return this;
|
|
1059
|
+
}
|
|
1060
|
+
toJSON() {
|
|
1061
|
+
return structuredClone(this.data);
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
class UserCommandBuilder extends ContextMenuCommandBuilder {
|
|
1066
|
+
constructor() {
|
|
1067
|
+
super(2);
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
class MessageCommandBuilder extends ContextMenuCommandBuilder {
|
|
1072
|
+
constructor() {
|
|
1073
|
+
super(3);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
921
1076
|
// packages/builders/src/attachment.ts
|
|
922
1077
|
import { readFile } from "fs/promises";
|
|
923
1078
|
import { basename } from "path";
|
|
@@ -963,7 +1118,7 @@ class AttachmentBuilder {
|
|
|
963
1118
|
if (typeof Buffer !== "undefined" && Buffer.isBuffer(this.file)) {
|
|
964
1119
|
return new Uint8Array(this.file);
|
|
965
1120
|
}
|
|
966
|
-
|
|
1121
|
+
throw new TypeError("Attachment file must be a supported binary value or file path.");
|
|
967
1122
|
}
|
|
968
1123
|
}
|
|
969
1124
|
export {
|
|
@@ -975,30 +1130,38 @@ export {
|
|
|
975
1130
|
ButtonBuilder,
|
|
976
1131
|
ButtonStyle,
|
|
977
1132
|
ChannelOptionBuilder,
|
|
1133
|
+
ChannelSelectMenuBuilder,
|
|
978
1134
|
ComponentType,
|
|
979
1135
|
ContainerBuilder,
|
|
980
1136
|
ContentInventoryEntryBuilder,
|
|
1137
|
+
ContextMenuCommandBuilder,
|
|
981
1138
|
EmbedBuilder,
|
|
982
1139
|
EntitySelectBuilder,
|
|
983
1140
|
FileComponentBuilder,
|
|
984
1141
|
IntegerOptionBuilder,
|
|
985
1142
|
MediaGalleryBuilder,
|
|
986
1143
|
MentionableOptionBuilder,
|
|
1144
|
+
MentionableSelectMenuBuilder,
|
|
1145
|
+
MessageCommandBuilder,
|
|
987
1146
|
ModalBuilder,
|
|
988
1147
|
NumberOptionBuilder,
|
|
989
1148
|
RoleOptionBuilder,
|
|
1149
|
+
RoleSelectMenuBuilder,
|
|
990
1150
|
SectionBuilder,
|
|
991
1151
|
SeparatorBuilder,
|
|
992
1152
|
SlashCommandBuilder,
|
|
993
1153
|
StringOptionBuilder,
|
|
994
1154
|
StringSelectBuilder,
|
|
1155
|
+
StringSelectBuilder as StringSelectMenuBuilder,
|
|
995
1156
|
SubcommandBuilder,
|
|
996
1157
|
SubcommandGroupBuilder,
|
|
997
1158
|
TextDisplayBuilder,
|
|
998
1159
|
TextInputBuilder,
|
|
999
1160
|
TextInputStyle,
|
|
1000
1161
|
ThumbnailBuilder,
|
|
1001
|
-
|
|
1162
|
+
UserCommandBuilder,
|
|
1163
|
+
UserOptionBuilder,
|
|
1164
|
+
UserSelectMenuBuilder
|
|
1002
1165
|
};
|
|
1003
1166
|
|
|
1004
|
-
//# debugId=
|
|
1167
|
+
//# debugId=51C5BC8CB8846ABF64756E2164756E21
|