@stoatx/client 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +270 -41
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +82 -24
- package/dist/index.d.ts +82 -24
- package/dist/index.js +268 -40
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -71,7 +71,8 @@ __export(index_exports, {
|
|
|
71
71
|
User: () => User,
|
|
72
72
|
UserManager: () => UserManager,
|
|
73
73
|
VoiceConnection: () => VoiceConnection,
|
|
74
|
-
VoiceManager: () => VoiceManager
|
|
74
|
+
VoiceManager: () => VoiceManager,
|
|
75
|
+
decodeTime: () => import_ulid8.decodeTime
|
|
75
76
|
});
|
|
76
77
|
module.exports = __toCommonJS(index_exports);
|
|
77
78
|
|
|
@@ -526,7 +527,7 @@ var MessageMentions = class _MessageMentions {
|
|
|
526
527
|
static parseChannelIds(content) {
|
|
527
528
|
return [...content.matchAll(/<#([A-Z0-9]+)>/g)].flatMap((m) => m[1] ? [m[1]] : []);
|
|
528
529
|
}
|
|
529
|
-
[import_node_util.default.inspect.custom](depth, options,
|
|
530
|
+
[import_node_util.default.inspect.custom](depth, options, inspect13) {
|
|
530
531
|
const { client, message, ...props } = this;
|
|
531
532
|
const data = {
|
|
532
533
|
...props,
|
|
@@ -535,7 +536,7 @@ var MessageMentions = class _MessageMentions {
|
|
|
535
536
|
users: this.users,
|
|
536
537
|
roles: this.roles
|
|
537
538
|
};
|
|
538
|
-
return `${this.constructor.name} ${
|
|
539
|
+
return `${this.constructor.name} ${inspect13(data, { ...options, depth: depth ?? options.depth })}`;
|
|
539
540
|
}
|
|
540
541
|
};
|
|
541
542
|
|
|
@@ -547,7 +548,8 @@ var Message = class extends Base {
|
|
|
547
548
|
embeds = [];
|
|
548
549
|
attachments = [];
|
|
549
550
|
editedAt = null;
|
|
550
|
-
createdAt
|
|
551
|
+
createdAt;
|
|
552
|
+
createdTimestamp;
|
|
551
553
|
flags = 0;
|
|
552
554
|
interactions = null;
|
|
553
555
|
masquerade = null;
|
|
@@ -559,10 +561,9 @@ var Message = class extends Base {
|
|
|
559
561
|
super(client, data);
|
|
560
562
|
this.authorId = data.author;
|
|
561
563
|
this.channelId = data.channel;
|
|
562
|
-
const timestamp = (0, import_ulid.decodeTime)(
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
}
|
|
564
|
+
const timestamp = (0, import_ulid.decodeTime)(data._id);
|
|
565
|
+
this.createdAt = new Date(timestamp);
|
|
566
|
+
this.createdTimestamp = timestamp;
|
|
566
567
|
if (data.attachments) {
|
|
567
568
|
this.attachments = data.attachments.map((fileData) => new Attachment(this.client, fileData));
|
|
568
569
|
}
|
|
@@ -743,7 +744,7 @@ var Message = class extends Base {
|
|
|
743
744
|
}
|
|
744
745
|
}
|
|
745
746
|
// This tells Node.js exactly how to print this object in console.log()
|
|
746
|
-
[util3.inspect.custom](depth, options,
|
|
747
|
+
[util3.inspect.custom](depth, options, inspect13) {
|
|
747
748
|
const { client, authorId, channelId, ...props } = this;
|
|
748
749
|
const data = {
|
|
749
750
|
...props,
|
|
@@ -752,11 +753,12 @@ var Message = class extends Base {
|
|
|
752
753
|
server: this.server,
|
|
753
754
|
member: this.member
|
|
754
755
|
};
|
|
755
|
-
return `${this.constructor.name} ${
|
|
756
|
+
return `${this.constructor.name} ${inspect13(data, { ...options, depth: depth ?? options.depth })}`;
|
|
756
757
|
}
|
|
757
758
|
};
|
|
758
759
|
|
|
759
760
|
// src/structures/User.ts
|
|
761
|
+
var import_ulid2 = require("ulid");
|
|
760
762
|
var User = class extends Base {
|
|
761
763
|
discriminator;
|
|
762
764
|
online;
|
|
@@ -769,11 +771,17 @@ var User = class extends Base {
|
|
|
769
771
|
flags;
|
|
770
772
|
privileged;
|
|
771
773
|
status;
|
|
774
|
+
createdAt;
|
|
775
|
+
createdTimestamp;
|
|
776
|
+
pronouns = null;
|
|
772
777
|
constructor(client, data) {
|
|
773
778
|
super(client, data);
|
|
774
779
|
this.bot = false;
|
|
775
780
|
this.privileged = false;
|
|
776
781
|
this.flags = 0;
|
|
782
|
+
const timestamp = (0, import_ulid2.decodeTime)(data._id);
|
|
783
|
+
this.createdAt = new Date(timestamp);
|
|
784
|
+
this.createdTimestamp = timestamp;
|
|
777
785
|
this._patch(data);
|
|
778
786
|
}
|
|
779
787
|
_patch(data, clear) {
|
|
@@ -781,6 +789,7 @@ var User = class extends Base {
|
|
|
781
789
|
if (data.discriminator !== void 0) this.discriminator = data.discriminator;
|
|
782
790
|
if (data.online !== void 0) this.online = data.online;
|
|
783
791
|
if (data.relationship !== void 0) this.relationship = data.relationship;
|
|
792
|
+
if (data.pronouns !== void 0) this.pronouns = data.pronouns;
|
|
784
793
|
if (data.display_name !== void 0) this.displayName = data.display_name;
|
|
785
794
|
if (data.badges !== void 0) this.badges = data.badges;
|
|
786
795
|
if (data.flags !== void 0) this.flags = data.flags;
|
|
@@ -794,9 +803,23 @@ var User = class extends Base {
|
|
|
794
803
|
}
|
|
795
804
|
if (clear && Array.isArray(clear)) {
|
|
796
805
|
for (const field of clear) {
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
806
|
+
switch (field) {
|
|
807
|
+
case "Avatar":
|
|
808
|
+
this.avatar = null;
|
|
809
|
+
break;
|
|
810
|
+
case "DisplayName":
|
|
811
|
+
this.displayName = null;
|
|
812
|
+
break;
|
|
813
|
+
case "Pronouns":
|
|
814
|
+
this.pronouns = null;
|
|
815
|
+
break;
|
|
816
|
+
case "StatusText":
|
|
817
|
+
this.status.text = null;
|
|
818
|
+
break;
|
|
819
|
+
case "StatusPresence":
|
|
820
|
+
this.status.presence = null;
|
|
821
|
+
break;
|
|
822
|
+
}
|
|
800
823
|
}
|
|
801
824
|
}
|
|
802
825
|
}
|
|
@@ -912,11 +935,10 @@ var GatewayManager = class {
|
|
|
912
935
|
}
|
|
913
936
|
if (payload.emojis) {
|
|
914
937
|
for (const rawEmoji of payload.emojis) {
|
|
915
|
-
const emoji = this.client.emojis._add(rawEmoji);
|
|
916
938
|
if (rawEmoji.parent && rawEmoji.parent.type === "Server") {
|
|
917
939
|
const server = this.client.servers.cache.get(rawEmoji.parent.id);
|
|
918
940
|
if (server) {
|
|
919
|
-
server.emojis._add(
|
|
941
|
+
server.emojis._add(rawEmoji);
|
|
920
942
|
}
|
|
921
943
|
}
|
|
922
944
|
}
|
|
@@ -1094,7 +1116,7 @@ var GatewayManager = class {
|
|
|
1094
1116
|
case "ServerMemberJoin": {
|
|
1095
1117
|
const server = this.client.servers.cache.get(payload.id);
|
|
1096
1118
|
if (server) {
|
|
1097
|
-
const member = server.members._add(
|
|
1119
|
+
const member = server.members._add(payload.member);
|
|
1098
1120
|
this.client.emit("serverMemberJoin", member);
|
|
1099
1121
|
}
|
|
1100
1122
|
break;
|
|
@@ -1112,7 +1134,7 @@ var GatewayManager = class {
|
|
|
1112
1134
|
if (payload.reason === "Ban") {
|
|
1113
1135
|
if (server) {
|
|
1114
1136
|
const dummyBanPayload = {
|
|
1115
|
-
|
|
1137
|
+
_id: payload.user,
|
|
1116
1138
|
reason: null
|
|
1117
1139
|
};
|
|
1118
1140
|
server.bans._add(dummyBanPayload);
|
|
@@ -1126,11 +1148,10 @@ var GatewayManager = class {
|
|
|
1126
1148
|
break;
|
|
1127
1149
|
}
|
|
1128
1150
|
case "EmojiCreate": {
|
|
1129
|
-
const emoji = this.client.emojis._add(payload);
|
|
1130
1151
|
if (payload.parent?.type === "Server") {
|
|
1131
1152
|
const server = this.client.servers.cache.get(payload.parent.id);
|
|
1132
1153
|
if (server) {
|
|
1133
|
-
server.emojis._add(
|
|
1154
|
+
server.emojis._add(payload);
|
|
1134
1155
|
}
|
|
1135
1156
|
}
|
|
1136
1157
|
break;
|
|
@@ -1530,7 +1551,7 @@ var BaseManager = class {
|
|
|
1530
1551
|
_add(data) {
|
|
1531
1552
|
const id = this.extractId(data);
|
|
1532
1553
|
const existing = this.cache.get(id);
|
|
1533
|
-
if (existing &&
|
|
1554
|
+
if (existing && this.isPatchable(existing)) {
|
|
1534
1555
|
existing._patch(data);
|
|
1535
1556
|
return existing;
|
|
1536
1557
|
}
|
|
@@ -1538,6 +1559,9 @@ var BaseManager = class {
|
|
|
1538
1559
|
this.cache.set(id, structure);
|
|
1539
1560
|
return structure;
|
|
1540
1561
|
}
|
|
1562
|
+
isPatchable(value) {
|
|
1563
|
+
return typeof value._patch === "function";
|
|
1564
|
+
}
|
|
1541
1565
|
};
|
|
1542
1566
|
|
|
1543
1567
|
// src/builders/AttachmentBuilder.ts
|
|
@@ -1981,6 +2005,7 @@ var BaseChannel = class extends Base {
|
|
|
1981
2005
|
};
|
|
1982
2006
|
|
|
1983
2007
|
// src/structures/TextChannel.ts
|
|
2008
|
+
var import_ulid3 = require("ulid");
|
|
1984
2009
|
var TextChannel = class extends BaseChannel {
|
|
1985
2010
|
name;
|
|
1986
2011
|
serverId;
|
|
@@ -1991,9 +2016,14 @@ var TextChannel = class extends BaseChannel {
|
|
|
1991
2016
|
nsfw;
|
|
1992
2017
|
slowmode;
|
|
1993
2018
|
voice;
|
|
2019
|
+
createdAt;
|
|
2020
|
+
createdTimestamp;
|
|
1994
2021
|
constructor(client, data) {
|
|
1995
2022
|
super(client, data);
|
|
1996
2023
|
this.serverId = data.server;
|
|
2024
|
+
const timestamp = (0, import_ulid3.decodeTime)(data._id);
|
|
2025
|
+
this.createdTimestamp = timestamp;
|
|
2026
|
+
this.createdAt = new Date(timestamp);
|
|
1997
2027
|
this.defaultPermissions = data.default_permissions;
|
|
1998
2028
|
this.description = data.description;
|
|
1999
2029
|
if (data.icon !== void 0) {
|
|
@@ -2018,10 +2048,10 @@ var TextChannel = class extends BaseChannel {
|
|
|
2018
2048
|
this.icon = null;
|
|
2019
2049
|
break;
|
|
2020
2050
|
case "DefaultPermissions":
|
|
2021
|
-
this.defaultPermissions =
|
|
2051
|
+
this.defaultPermissions = null;
|
|
2022
2052
|
break;
|
|
2023
2053
|
case "Voice":
|
|
2024
|
-
this.voice =
|
|
2054
|
+
this.voice = null;
|
|
2025
2055
|
break;
|
|
2026
2056
|
}
|
|
2027
2057
|
}
|
|
@@ -2216,6 +2246,7 @@ var DMChannel = class extends BaseChannel {
|
|
|
2216
2246
|
|
|
2217
2247
|
// src/structures/GroupChannel.ts
|
|
2218
2248
|
var util5 = __toESM(require("util"), 1);
|
|
2249
|
+
var import_ulid4 = require("ulid");
|
|
2219
2250
|
var GroupChannel = class extends BaseChannel {
|
|
2220
2251
|
name;
|
|
2221
2252
|
ownerId;
|
|
@@ -2224,8 +2255,13 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2224
2255
|
icon = null;
|
|
2225
2256
|
lastMessageId = null;
|
|
2226
2257
|
nsfw = false;
|
|
2258
|
+
createdAt;
|
|
2259
|
+
createdTimestamp;
|
|
2227
2260
|
constructor(client, data) {
|
|
2228
2261
|
super(client, data);
|
|
2262
|
+
const timestamp = (0, import_ulid4.decodeTime)(data._id);
|
|
2263
|
+
this.createdAt = new Date(timestamp);
|
|
2264
|
+
this.createdTimestamp = timestamp;
|
|
2229
2265
|
this._patch(data);
|
|
2230
2266
|
}
|
|
2231
2267
|
_patch(data, clear) {
|
|
@@ -2241,9 +2277,6 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2241
2277
|
if (clear && Array.isArray(clear)) {
|
|
2242
2278
|
for (const field of clear) {
|
|
2243
2279
|
switch (field) {
|
|
2244
|
-
case "Name":
|
|
2245
|
-
this.name = "";
|
|
2246
|
-
break;
|
|
2247
2280
|
case "Description":
|
|
2248
2281
|
this.description = null;
|
|
2249
2282
|
break;
|
|
@@ -2275,9 +2308,9 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2275
2308
|
async setDefaultPermissions(permissions) {
|
|
2276
2309
|
return await this.client.channels.setDefaultPermissions(this.id, permissions);
|
|
2277
2310
|
}
|
|
2278
|
-
[util5.inspect.custom](_depth, options,
|
|
2311
|
+
[util5.inspect.custom](_depth, options, inspect13) {
|
|
2279
2312
|
const { client, ...props } = this;
|
|
2280
|
-
return `${this.constructor.name} ${
|
|
2313
|
+
return `${this.constructor.name} ${inspect13(
|
|
2281
2314
|
{
|
|
2282
2315
|
...props,
|
|
2283
2316
|
owner: this.owner,
|
|
@@ -2924,6 +2957,8 @@ var Member = class extends Base {
|
|
|
2924
2957
|
_roles = [];
|
|
2925
2958
|
// The date the member joined the server
|
|
2926
2959
|
joinedAt;
|
|
2960
|
+
// The timestamp the member joined the server
|
|
2961
|
+
joinedTimestamp;
|
|
2927
2962
|
// The date the member's timeout expires, or null if not timed out
|
|
2928
2963
|
timeout = null;
|
|
2929
2964
|
// Whatever the user can talk in Voice Chat
|
|
@@ -2932,20 +2967,53 @@ var Member = class extends Base {
|
|
|
2932
2967
|
canRecieve = false;
|
|
2933
2968
|
// Member roles manager
|
|
2934
2969
|
roles;
|
|
2970
|
+
// Member pronouns
|
|
2971
|
+
pronouns = null;
|
|
2935
2972
|
constructor(client, data, serverId) {
|
|
2936
2973
|
super(client, { _id: data._id?.user });
|
|
2937
2974
|
this.serverId = data._id?.server ?? serverId;
|
|
2938
|
-
|
|
2975
|
+
const timestamp = new Date(data.joined_at);
|
|
2976
|
+
this.joinedAt = timestamp;
|
|
2977
|
+
this.joinedTimestamp = timestamp.getTime();
|
|
2939
2978
|
this.roles = new MemberRoleManager(this);
|
|
2940
2979
|
this._patch(data);
|
|
2941
2980
|
}
|
|
2942
|
-
_patch(data) {
|
|
2981
|
+
_patch(data, clear) {
|
|
2943
2982
|
if (data.nickname !== void 0) this.nickname = data.nickname;
|
|
2944
2983
|
if (data.avatar !== void 0) this.avatar = data.avatar ? new Attachment(this.client, data.avatar) : null;
|
|
2945
2984
|
if (data.roles !== void 0) this._roles = data.roles;
|
|
2946
2985
|
if (data.timeout !== void 0) this.timeout = data.timeout ? new Date(data.timeout) : null;
|
|
2947
2986
|
if (data.can_publish !== void 0) this.canPublish = data.can_publish;
|
|
2948
2987
|
if (data.can_receive !== void 0) this.canRecieve = data.can_receive;
|
|
2988
|
+
if (data.pronouns !== void 0) this.pronouns = data.pronouns;
|
|
2989
|
+
if (clear && Array.isArray(clear)) {
|
|
2990
|
+
for (const field of clear) {
|
|
2991
|
+
switch (field) {
|
|
2992
|
+
case "Avatar":
|
|
2993
|
+
this.avatar = null;
|
|
2994
|
+
break;
|
|
2995
|
+
case "Nickname":
|
|
2996
|
+
this.nickname = null;
|
|
2997
|
+
break;
|
|
2998
|
+
case "Pronouns":
|
|
2999
|
+
this.pronouns = null;
|
|
3000
|
+
break;
|
|
3001
|
+
case "CanPublish":
|
|
3002
|
+
this.canPublish = false;
|
|
3003
|
+
break;
|
|
3004
|
+
case "Timeout":
|
|
3005
|
+
this.timeout = null;
|
|
3006
|
+
break;
|
|
3007
|
+
case "Roles":
|
|
3008
|
+
this._roles = [];
|
|
3009
|
+
this.roles = new MemberRoleManager(this);
|
|
3010
|
+
break;
|
|
3011
|
+
case "CanReceive":
|
|
3012
|
+
this.canRecieve = false;
|
|
3013
|
+
break;
|
|
3014
|
+
}
|
|
3015
|
+
}
|
|
3016
|
+
}
|
|
2949
3017
|
}
|
|
2950
3018
|
/**
|
|
2951
3019
|
* Get member role IDs
|
|
@@ -3065,9 +3133,9 @@ var Member = class extends Base {
|
|
|
3065
3133
|
await server.members.kick(this.id);
|
|
3066
3134
|
}
|
|
3067
3135
|
/** @internal */
|
|
3068
|
-
[util6.inspect.custom](depth, options,
|
|
3136
|
+
[util6.inspect.custom](depth, options, inspect13) {
|
|
3069
3137
|
const { client, serverId, ...props } = this;
|
|
3070
|
-
return `${this.constructor.name} ${
|
|
3138
|
+
return `${this.constructor.name} ${inspect13(
|
|
3071
3139
|
{
|
|
3072
3140
|
...props,
|
|
3073
3141
|
user: this.user,
|
|
@@ -3298,6 +3366,7 @@ var ServerChannelManager = class {
|
|
|
3298
3366
|
|
|
3299
3367
|
// src/structures/Role.ts
|
|
3300
3368
|
var util9 = __toESM(require("util"), 1);
|
|
3369
|
+
var import_ulid5 = require("ulid");
|
|
3301
3370
|
var Role = class extends Base {
|
|
3302
3371
|
serverId;
|
|
3303
3372
|
name;
|
|
@@ -3306,16 +3375,21 @@ var Role = class extends Base {
|
|
|
3306
3375
|
rank = 0;
|
|
3307
3376
|
icon = null;
|
|
3308
3377
|
_permissions = 0n;
|
|
3378
|
+
createdAt;
|
|
3379
|
+
createdTimestamp;
|
|
3309
3380
|
constructor(client, data, serverId) {
|
|
3310
3381
|
super(client, data);
|
|
3311
3382
|
this.serverId = serverId;
|
|
3383
|
+
const timestamp = (0, import_ulid5.decodeTime)(data._id);
|
|
3384
|
+
this.createdAt = new Date(timestamp);
|
|
3385
|
+
this.createdTimestamp = timestamp;
|
|
3312
3386
|
this._patch(data);
|
|
3313
3387
|
}
|
|
3314
3388
|
/**
|
|
3315
3389
|
* Updates the role instance with new data without losing the object reference.
|
|
3316
3390
|
* @internal
|
|
3317
3391
|
*/
|
|
3318
|
-
_patch(data) {
|
|
3392
|
+
_patch(data, clear) {
|
|
3319
3393
|
if (data.name !== void 0) this.name = data.name;
|
|
3320
3394
|
if (data.colour !== void 0) this.color = data.colour;
|
|
3321
3395
|
if (data.hoist !== void 0) this.hoist = data.hoist;
|
|
@@ -3333,6 +3407,18 @@ var Role = class extends Base {
|
|
|
3333
3407
|
this._permissions = 0n;
|
|
3334
3408
|
}
|
|
3335
3409
|
}
|
|
3410
|
+
if (clear && Array.isArray(clear)) {
|
|
3411
|
+
for (const field of clear) {
|
|
3412
|
+
switch (field) {
|
|
3413
|
+
case "Colour":
|
|
3414
|
+
this.color = null;
|
|
3415
|
+
break;
|
|
3416
|
+
case "Icon":
|
|
3417
|
+
this.icon = null;
|
|
3418
|
+
break;
|
|
3419
|
+
}
|
|
3420
|
+
}
|
|
3421
|
+
}
|
|
3336
3422
|
}
|
|
3337
3423
|
/**
|
|
3338
3424
|
* The server this role belongs to.
|
|
@@ -3828,7 +3914,7 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3828
3914
|
this.server = server;
|
|
3829
3915
|
}
|
|
3830
3916
|
extractId(data) {
|
|
3831
|
-
return data._id?.user
|
|
3917
|
+
return data._id?.user;
|
|
3832
3918
|
}
|
|
3833
3919
|
construct(data) {
|
|
3834
3920
|
return new ServerBan(data);
|
|
@@ -3840,11 +3926,6 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3840
3926
|
*/
|
|
3841
3927
|
async fetch() {
|
|
3842
3928
|
const data = await this.client.rest.get(`/servers/${this.server.id}/bans`);
|
|
3843
|
-
if (data.users && Array.isArray(data.users)) {
|
|
3844
|
-
for (const userData of data.users) {
|
|
3845
|
-
this.client.users._add(userData);
|
|
3846
|
-
}
|
|
3847
|
-
}
|
|
3848
3929
|
const rawBans = data.bans || (Array.isArray(data) ? data : []);
|
|
3849
3930
|
const fetched = new Collection();
|
|
3850
3931
|
for (const rawBan of rawBans) {
|
|
@@ -3865,14 +3946,20 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3865
3946
|
};
|
|
3866
3947
|
|
|
3867
3948
|
// src/structures/Emoji.ts
|
|
3949
|
+
var import_ulid6 = require("ulid");
|
|
3868
3950
|
var Emoji = class extends Base {
|
|
3869
3951
|
creatorId;
|
|
3870
3952
|
name;
|
|
3871
3953
|
parent;
|
|
3954
|
+
createdAt;
|
|
3955
|
+
createdTimestamp;
|
|
3872
3956
|
animated = false;
|
|
3873
3957
|
nsfw = false;
|
|
3874
3958
|
constructor(client, data) {
|
|
3875
3959
|
super(client, data);
|
|
3960
|
+
const timestamp = (0, import_ulid6.decodeTime)(data._id);
|
|
3961
|
+
this.createdAt = new Date(timestamp);
|
|
3962
|
+
this.createdTimestamp = timestamp;
|
|
3876
3963
|
this._patch(data);
|
|
3877
3964
|
}
|
|
3878
3965
|
_patch(data) {
|
|
@@ -4050,6 +4137,114 @@ var EmojiManager = class extends BaseManager {
|
|
|
4050
4137
|
}
|
|
4051
4138
|
};
|
|
4052
4139
|
|
|
4140
|
+
// src/structures/Server.ts
|
|
4141
|
+
var import_ulid7 = require("ulid");
|
|
4142
|
+
|
|
4143
|
+
// src/structures/AuditLogEntry.ts
|
|
4144
|
+
var util12 = __toESM(require("util"), 1);
|
|
4145
|
+
function resolveTargetId(data) {
|
|
4146
|
+
if (data.target) return data.target;
|
|
4147
|
+
const action = data.action;
|
|
4148
|
+
switch (action.type) {
|
|
4149
|
+
case "ChannelCreate":
|
|
4150
|
+
case "ChannelEdit":
|
|
4151
|
+
case "ChannelDelete":
|
|
4152
|
+
case "ChannelRolePermissionsEdit":
|
|
4153
|
+
return action.channel;
|
|
4154
|
+
case "RoleCreate":
|
|
4155
|
+
case "RoleEdit":
|
|
4156
|
+
case "RoleDelete":
|
|
4157
|
+
return action.role;
|
|
4158
|
+
case "InviteCreate":
|
|
4159
|
+
case "InviteDelete":
|
|
4160
|
+
return action.invite;
|
|
4161
|
+
case "WebhookCreate":
|
|
4162
|
+
case "WebhookDelete":
|
|
4163
|
+
return action.webhook;
|
|
4164
|
+
case "EmojiCreate":
|
|
4165
|
+
case "EmojiUpdate":
|
|
4166
|
+
case "EmojiDelete":
|
|
4167
|
+
return action.emoji;
|
|
4168
|
+
case "MessageDelete":
|
|
4169
|
+
return action.channel;
|
|
4170
|
+
case "MessagePin":
|
|
4171
|
+
case "MessageUnpin":
|
|
4172
|
+
return action.message;
|
|
4173
|
+
case "MessageBulkDelete":
|
|
4174
|
+
return action.channel;
|
|
4175
|
+
default:
|
|
4176
|
+
return null;
|
|
4177
|
+
}
|
|
4178
|
+
}
|
|
4179
|
+
var AuditLogEntry = class extends Base {
|
|
4180
|
+
serverId;
|
|
4181
|
+
userId;
|
|
4182
|
+
targetId;
|
|
4183
|
+
reason;
|
|
4184
|
+
action;
|
|
4185
|
+
constructor(client, data) {
|
|
4186
|
+
super(client, data);
|
|
4187
|
+
this.serverId = data.server;
|
|
4188
|
+
this.userId = data.user;
|
|
4189
|
+
this.targetId = resolveTargetId(data);
|
|
4190
|
+
this.reason = data.reason ?? null;
|
|
4191
|
+
this.action = data.action;
|
|
4192
|
+
}
|
|
4193
|
+
/** The action tag, e.g. "ChannelEdit" — narrow `entry.action` on this. */
|
|
4194
|
+
get type() {
|
|
4195
|
+
return this.action.type;
|
|
4196
|
+
}
|
|
4197
|
+
get server() {
|
|
4198
|
+
return this.client.servers.cache.get(this.serverId);
|
|
4199
|
+
}
|
|
4200
|
+
/** The user who performed this action, if cached. */
|
|
4201
|
+
get executor() {
|
|
4202
|
+
return this.client.users.cache.get(this.userId);
|
|
4203
|
+
}
|
|
4204
|
+
/**
|
|
4205
|
+
* Best-effort resolve of `targetId` into the actual entity, picked by
|
|
4206
|
+
* `action.type` since a bare id alone doesn't say whether it's a member,
|
|
4207
|
+
* a role, a channel, etc.
|
|
4208
|
+
*/
|
|
4209
|
+
get target() {
|
|
4210
|
+
if (!this.targetId) return void 0;
|
|
4211
|
+
const server = this.server;
|
|
4212
|
+
switch (this.action.type) {
|
|
4213
|
+
case "MemberEdit":
|
|
4214
|
+
case "MemberKick":
|
|
4215
|
+
return server?.members.cache.get(this.targetId);
|
|
4216
|
+
case "BanCreate":
|
|
4217
|
+
case "BanDelete":
|
|
4218
|
+
return this.client.users.cache.get(this.targetId);
|
|
4219
|
+
case "ChannelCreate":
|
|
4220
|
+
case "ChannelEdit":
|
|
4221
|
+
case "ChannelDelete":
|
|
4222
|
+
case "ChannelRolePermissionsEdit":
|
|
4223
|
+
return server?.channels.cache.get(this.targetId);
|
|
4224
|
+
case "RoleCreate":
|
|
4225
|
+
case "RoleEdit":
|
|
4226
|
+
case "RoleDelete":
|
|
4227
|
+
return server?.roles.cache.get(this.targetId);
|
|
4228
|
+
default:
|
|
4229
|
+
return this.targetId;
|
|
4230
|
+
}
|
|
4231
|
+
}
|
|
4232
|
+
/**
|
|
4233
|
+
* Customizer for Node.js `console.log` and `util.inspect`.
|
|
4234
|
+
* Hides the cyclic client reference for a cleaner output.
|
|
4235
|
+
* @internal
|
|
4236
|
+
*/
|
|
4237
|
+
[util12.inspect.custom]() {
|
|
4238
|
+
const { client, ...props } = this;
|
|
4239
|
+
return `${this.constructor.name} ${util12.inspect({
|
|
4240
|
+
...props,
|
|
4241
|
+
type: this.type,
|
|
4242
|
+
executor: this.executor,
|
|
4243
|
+
target: this.target
|
|
4244
|
+
})}`;
|
|
4245
|
+
}
|
|
4246
|
+
};
|
|
4247
|
+
|
|
4053
4248
|
// src/structures/Server.ts
|
|
4054
4249
|
var Server = class extends Base {
|
|
4055
4250
|
channelIds = [];
|
|
@@ -4070,6 +4265,8 @@ var Server = class extends Base {
|
|
|
4070
4265
|
bans;
|
|
4071
4266
|
invites;
|
|
4072
4267
|
emojis;
|
|
4268
|
+
createdAt;
|
|
4269
|
+
createdTimestamp;
|
|
4073
4270
|
constructor(client, data) {
|
|
4074
4271
|
super(client, data);
|
|
4075
4272
|
this.channels = new ServerChannelManager(client, this);
|
|
@@ -4078,6 +4275,9 @@ var Server = class extends Base {
|
|
|
4078
4275
|
this.bans = new ServerBanManager(this.client, this);
|
|
4079
4276
|
this.invites = new ServerInviteManager(this.client, this);
|
|
4080
4277
|
this.emojis = new EmojiManager(this.client, this);
|
|
4278
|
+
const timestamp = (0, import_ulid7.decodeTime)(data._id);
|
|
4279
|
+
this.createdAt = new Date(timestamp);
|
|
4280
|
+
this.createdTimestamp = timestamp;
|
|
4081
4281
|
this._patch(data);
|
|
4082
4282
|
}
|
|
4083
4283
|
/**
|
|
@@ -4120,6 +4320,12 @@ var Server = class extends Base {
|
|
|
4120
4320
|
case "Icon":
|
|
4121
4321
|
this.icon = null;
|
|
4122
4322
|
break;
|
|
4323
|
+
case "Banner":
|
|
4324
|
+
this.banner = null;
|
|
4325
|
+
break;
|
|
4326
|
+
case "Categories":
|
|
4327
|
+
this.categories = null;
|
|
4328
|
+
break;
|
|
4123
4329
|
}
|
|
4124
4330
|
}
|
|
4125
4331
|
}
|
|
@@ -4138,6 +4344,27 @@ var Server = class extends Base {
|
|
|
4138
4344
|
async leave() {
|
|
4139
4345
|
return this.client.rest.delete(`/servers/${this.id}/leave`);
|
|
4140
4346
|
}
|
|
4347
|
+
/**
|
|
4348
|
+
* Fetch audit logs for this server
|
|
4349
|
+
* @param options Query params
|
|
4350
|
+
*/
|
|
4351
|
+
async fetchAuditLogs(options) {
|
|
4352
|
+
const query = {};
|
|
4353
|
+
if (options?.user) query.user = options.user;
|
|
4354
|
+
if (options?.target) query.target = options.target;
|
|
4355
|
+
if (options?.type) query.type = options.type;
|
|
4356
|
+
if (options?.before) query.before = options.before;
|
|
4357
|
+
if (options?.after) query.after = options.after;
|
|
4358
|
+
if (options?.limit) query.limit = options.limit;
|
|
4359
|
+
const data = await this.client.rest.get(`/servers/${this.id}/audit_logs`, query);
|
|
4360
|
+
for (const user of data.users) this.client.users._add(user);
|
|
4361
|
+
for (const member of data.members) this.members._add(member);
|
|
4362
|
+
const entries = new Collection();
|
|
4363
|
+
for (const raw of data.audit_logs) {
|
|
4364
|
+
entries.set(raw._id, new AuditLogEntry(this.client, raw));
|
|
4365
|
+
}
|
|
4366
|
+
return entries;
|
|
4367
|
+
}
|
|
4141
4368
|
/**
|
|
4142
4369
|
* Fetches multiple members from this server.
|
|
4143
4370
|
* @param options Filter options for the fetch request.
|
|
@@ -4149,7 +4376,7 @@ var Server = class extends Base {
|
|
|
4149
4376
|
};
|
|
4150
4377
|
|
|
4151
4378
|
// src/managers/ServerManager.ts
|
|
4152
|
-
var
|
|
4379
|
+
var util13 = __toESM(require("util"), 1);
|
|
4153
4380
|
var ServerManager = class extends BaseManager {
|
|
4154
4381
|
constructor(client, limit = Infinity) {
|
|
4155
4382
|
super(client, limit);
|
|
@@ -4220,7 +4447,7 @@ var ServerManager = class extends BaseManager {
|
|
|
4220
4447
|
const data = await this.client.rest.patch(`/servers/${serverId}`, payload);
|
|
4221
4448
|
return this._add(data);
|
|
4222
4449
|
}
|
|
4223
|
-
[
|
|
4450
|
+
[util13.inspect.custom]() {
|
|
4224
4451
|
return this.cache;
|
|
4225
4452
|
}
|
|
4226
4453
|
};
|
|
@@ -4790,6 +5017,7 @@ var EmbedBuilder = class {
|
|
|
4790
5017
|
};
|
|
4791
5018
|
|
|
4792
5019
|
// src/index.ts
|
|
5020
|
+
var import_ulid8 = require("ulid");
|
|
4793
5021
|
var API = __toESM(require("stoat-api"), 1);
|
|
4794
5022
|
// Annotate the CommonJS export names for ESM import in node:
|
|
4795
5023
|
0 && (module.exports = {
|
|
@@ -4834,6 +5062,7 @@ var API = __toESM(require("stoat-api"), 1);
|
|
|
4834
5062
|
User,
|
|
4835
5063
|
UserManager,
|
|
4836
5064
|
VoiceConnection,
|
|
4837
|
-
VoiceManager
|
|
5065
|
+
VoiceManager,
|
|
5066
|
+
decodeTime
|
|
4838
5067
|
});
|
|
4839
5068
|
//# sourceMappingURL=index.cjs.map
|