@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.js
CHANGED
|
@@ -449,7 +449,7 @@ var MessageMentions = class _MessageMentions {
|
|
|
449
449
|
static parseChannelIds(content) {
|
|
450
450
|
return [...content.matchAll(/<#([A-Z0-9]+)>/g)].flatMap((m) => m[1] ? [m[1]] : []);
|
|
451
451
|
}
|
|
452
|
-
[util2.inspect.custom](depth, options,
|
|
452
|
+
[util2.inspect.custom](depth, options, inspect13) {
|
|
453
453
|
const { client, message, ...props } = this;
|
|
454
454
|
const data = {
|
|
455
455
|
...props,
|
|
@@ -458,7 +458,7 @@ var MessageMentions = class _MessageMentions {
|
|
|
458
458
|
users: this.users,
|
|
459
459
|
roles: this.roles
|
|
460
460
|
};
|
|
461
|
-
return `${this.constructor.name} ${
|
|
461
|
+
return `${this.constructor.name} ${inspect13(data, { ...options, depth: depth ?? options.depth })}`;
|
|
462
462
|
}
|
|
463
463
|
};
|
|
464
464
|
|
|
@@ -470,7 +470,8 @@ var Message = class extends Base {
|
|
|
470
470
|
embeds = [];
|
|
471
471
|
attachments = [];
|
|
472
472
|
editedAt = null;
|
|
473
|
-
createdAt
|
|
473
|
+
createdAt;
|
|
474
|
+
createdTimestamp;
|
|
474
475
|
flags = 0;
|
|
475
476
|
interactions = null;
|
|
476
477
|
masquerade = null;
|
|
@@ -482,10 +483,9 @@ var Message = class extends Base {
|
|
|
482
483
|
super(client, data);
|
|
483
484
|
this.authorId = data.author;
|
|
484
485
|
this.channelId = data.channel;
|
|
485
|
-
const timestamp = decodeTime(
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
}
|
|
486
|
+
const timestamp = decodeTime(data._id);
|
|
487
|
+
this.createdAt = new Date(timestamp);
|
|
488
|
+
this.createdTimestamp = timestamp;
|
|
489
489
|
if (data.attachments) {
|
|
490
490
|
this.attachments = data.attachments.map((fileData) => new Attachment(this.client, fileData));
|
|
491
491
|
}
|
|
@@ -666,7 +666,7 @@ var Message = class extends Base {
|
|
|
666
666
|
}
|
|
667
667
|
}
|
|
668
668
|
// This tells Node.js exactly how to print this object in console.log()
|
|
669
|
-
[util3.inspect.custom](depth, options,
|
|
669
|
+
[util3.inspect.custom](depth, options, inspect13) {
|
|
670
670
|
const { client, authorId, channelId, ...props } = this;
|
|
671
671
|
const data = {
|
|
672
672
|
...props,
|
|
@@ -675,11 +675,12 @@ var Message = class extends Base {
|
|
|
675
675
|
server: this.server,
|
|
676
676
|
member: this.member
|
|
677
677
|
};
|
|
678
|
-
return `${this.constructor.name} ${
|
|
678
|
+
return `${this.constructor.name} ${inspect13(data, { ...options, depth: depth ?? options.depth })}`;
|
|
679
679
|
}
|
|
680
680
|
};
|
|
681
681
|
|
|
682
682
|
// src/structures/User.ts
|
|
683
|
+
import { decodeTime as decodeTime2 } from "ulid";
|
|
683
684
|
var User = class extends Base {
|
|
684
685
|
discriminator;
|
|
685
686
|
online;
|
|
@@ -692,11 +693,17 @@ var User = class extends Base {
|
|
|
692
693
|
flags;
|
|
693
694
|
privileged;
|
|
694
695
|
status;
|
|
696
|
+
createdAt;
|
|
697
|
+
createdTimestamp;
|
|
698
|
+
pronouns = null;
|
|
695
699
|
constructor(client, data) {
|
|
696
700
|
super(client, data);
|
|
697
701
|
this.bot = false;
|
|
698
702
|
this.privileged = false;
|
|
699
703
|
this.flags = 0;
|
|
704
|
+
const timestamp = decodeTime2(data._id);
|
|
705
|
+
this.createdAt = new Date(timestamp);
|
|
706
|
+
this.createdTimestamp = timestamp;
|
|
700
707
|
this._patch(data);
|
|
701
708
|
}
|
|
702
709
|
_patch(data, clear) {
|
|
@@ -704,6 +711,7 @@ var User = class extends Base {
|
|
|
704
711
|
if (data.discriminator !== void 0) this.discriminator = data.discriminator;
|
|
705
712
|
if (data.online !== void 0) this.online = data.online;
|
|
706
713
|
if (data.relationship !== void 0) this.relationship = data.relationship;
|
|
714
|
+
if (data.pronouns !== void 0) this.pronouns = data.pronouns;
|
|
707
715
|
if (data.display_name !== void 0) this.displayName = data.display_name;
|
|
708
716
|
if (data.badges !== void 0) this.badges = data.badges;
|
|
709
717
|
if (data.flags !== void 0) this.flags = data.flags;
|
|
@@ -717,9 +725,23 @@ var User = class extends Base {
|
|
|
717
725
|
}
|
|
718
726
|
if (clear && Array.isArray(clear)) {
|
|
719
727
|
for (const field of clear) {
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
728
|
+
switch (field) {
|
|
729
|
+
case "Avatar":
|
|
730
|
+
this.avatar = null;
|
|
731
|
+
break;
|
|
732
|
+
case "DisplayName":
|
|
733
|
+
this.displayName = null;
|
|
734
|
+
break;
|
|
735
|
+
case "Pronouns":
|
|
736
|
+
this.pronouns = null;
|
|
737
|
+
break;
|
|
738
|
+
case "StatusText":
|
|
739
|
+
this.status.text = null;
|
|
740
|
+
break;
|
|
741
|
+
case "StatusPresence":
|
|
742
|
+
this.status.presence = null;
|
|
743
|
+
break;
|
|
744
|
+
}
|
|
723
745
|
}
|
|
724
746
|
}
|
|
725
747
|
}
|
|
@@ -835,11 +857,10 @@ var GatewayManager = class {
|
|
|
835
857
|
}
|
|
836
858
|
if (payload.emojis) {
|
|
837
859
|
for (const rawEmoji of payload.emojis) {
|
|
838
|
-
const emoji = this.client.emojis._add(rawEmoji);
|
|
839
860
|
if (rawEmoji.parent && rawEmoji.parent.type === "Server") {
|
|
840
861
|
const server = this.client.servers.cache.get(rawEmoji.parent.id);
|
|
841
862
|
if (server) {
|
|
842
|
-
server.emojis._add(
|
|
863
|
+
server.emojis._add(rawEmoji);
|
|
843
864
|
}
|
|
844
865
|
}
|
|
845
866
|
}
|
|
@@ -1017,7 +1038,7 @@ var GatewayManager = class {
|
|
|
1017
1038
|
case "ServerMemberJoin": {
|
|
1018
1039
|
const server = this.client.servers.cache.get(payload.id);
|
|
1019
1040
|
if (server) {
|
|
1020
|
-
const member = server.members._add(
|
|
1041
|
+
const member = server.members._add(payload.member);
|
|
1021
1042
|
this.client.emit("serverMemberJoin", member);
|
|
1022
1043
|
}
|
|
1023
1044
|
break;
|
|
@@ -1035,7 +1056,7 @@ var GatewayManager = class {
|
|
|
1035
1056
|
if (payload.reason === "Ban") {
|
|
1036
1057
|
if (server) {
|
|
1037
1058
|
const dummyBanPayload = {
|
|
1038
|
-
|
|
1059
|
+
_id: payload.user,
|
|
1039
1060
|
reason: null
|
|
1040
1061
|
};
|
|
1041
1062
|
server.bans._add(dummyBanPayload);
|
|
@@ -1049,11 +1070,10 @@ var GatewayManager = class {
|
|
|
1049
1070
|
break;
|
|
1050
1071
|
}
|
|
1051
1072
|
case "EmojiCreate": {
|
|
1052
|
-
const emoji = this.client.emojis._add(payload);
|
|
1053
1073
|
if (payload.parent?.type === "Server") {
|
|
1054
1074
|
const server = this.client.servers.cache.get(payload.parent.id);
|
|
1055
1075
|
if (server) {
|
|
1056
|
-
server.emojis._add(
|
|
1076
|
+
server.emojis._add(payload);
|
|
1057
1077
|
}
|
|
1058
1078
|
}
|
|
1059
1079
|
break;
|
|
@@ -1453,7 +1473,7 @@ var BaseManager = class {
|
|
|
1453
1473
|
_add(data) {
|
|
1454
1474
|
const id = this.extractId(data);
|
|
1455
1475
|
const existing = this.cache.get(id);
|
|
1456
|
-
if (existing &&
|
|
1476
|
+
if (existing && this.isPatchable(existing)) {
|
|
1457
1477
|
existing._patch(data);
|
|
1458
1478
|
return existing;
|
|
1459
1479
|
}
|
|
@@ -1461,6 +1481,9 @@ var BaseManager = class {
|
|
|
1461
1481
|
this.cache.set(id, structure);
|
|
1462
1482
|
return structure;
|
|
1463
1483
|
}
|
|
1484
|
+
isPatchable(value) {
|
|
1485
|
+
return typeof value._patch === "function";
|
|
1486
|
+
}
|
|
1464
1487
|
};
|
|
1465
1488
|
|
|
1466
1489
|
// src/builders/AttachmentBuilder.ts
|
|
@@ -1904,6 +1927,7 @@ var BaseChannel = class extends Base {
|
|
|
1904
1927
|
};
|
|
1905
1928
|
|
|
1906
1929
|
// src/structures/TextChannel.ts
|
|
1930
|
+
import { decodeTime as decodeTime3 } from "ulid";
|
|
1907
1931
|
var TextChannel = class extends BaseChannel {
|
|
1908
1932
|
name;
|
|
1909
1933
|
serverId;
|
|
@@ -1914,9 +1938,14 @@ var TextChannel = class extends BaseChannel {
|
|
|
1914
1938
|
nsfw;
|
|
1915
1939
|
slowmode;
|
|
1916
1940
|
voice;
|
|
1941
|
+
createdAt;
|
|
1942
|
+
createdTimestamp;
|
|
1917
1943
|
constructor(client, data) {
|
|
1918
1944
|
super(client, data);
|
|
1919
1945
|
this.serverId = data.server;
|
|
1946
|
+
const timestamp = decodeTime3(data._id);
|
|
1947
|
+
this.createdTimestamp = timestamp;
|
|
1948
|
+
this.createdAt = new Date(timestamp);
|
|
1920
1949
|
this.defaultPermissions = data.default_permissions;
|
|
1921
1950
|
this.description = data.description;
|
|
1922
1951
|
if (data.icon !== void 0) {
|
|
@@ -1941,10 +1970,10 @@ var TextChannel = class extends BaseChannel {
|
|
|
1941
1970
|
this.icon = null;
|
|
1942
1971
|
break;
|
|
1943
1972
|
case "DefaultPermissions":
|
|
1944
|
-
this.defaultPermissions =
|
|
1973
|
+
this.defaultPermissions = null;
|
|
1945
1974
|
break;
|
|
1946
1975
|
case "Voice":
|
|
1947
|
-
this.voice =
|
|
1976
|
+
this.voice = null;
|
|
1948
1977
|
break;
|
|
1949
1978
|
}
|
|
1950
1979
|
}
|
|
@@ -2139,6 +2168,7 @@ var DMChannel = class extends BaseChannel {
|
|
|
2139
2168
|
|
|
2140
2169
|
// src/structures/GroupChannel.ts
|
|
2141
2170
|
import * as util5 from "util";
|
|
2171
|
+
import { decodeTime as decodeTime4 } from "ulid";
|
|
2142
2172
|
var GroupChannel = class extends BaseChannel {
|
|
2143
2173
|
name;
|
|
2144
2174
|
ownerId;
|
|
@@ -2147,8 +2177,13 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2147
2177
|
icon = null;
|
|
2148
2178
|
lastMessageId = null;
|
|
2149
2179
|
nsfw = false;
|
|
2180
|
+
createdAt;
|
|
2181
|
+
createdTimestamp;
|
|
2150
2182
|
constructor(client, data) {
|
|
2151
2183
|
super(client, data);
|
|
2184
|
+
const timestamp = decodeTime4(data._id);
|
|
2185
|
+
this.createdAt = new Date(timestamp);
|
|
2186
|
+
this.createdTimestamp = timestamp;
|
|
2152
2187
|
this._patch(data);
|
|
2153
2188
|
}
|
|
2154
2189
|
_patch(data, clear) {
|
|
@@ -2164,9 +2199,6 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2164
2199
|
if (clear && Array.isArray(clear)) {
|
|
2165
2200
|
for (const field of clear) {
|
|
2166
2201
|
switch (field) {
|
|
2167
|
-
case "Name":
|
|
2168
|
-
this.name = "";
|
|
2169
|
-
break;
|
|
2170
2202
|
case "Description":
|
|
2171
2203
|
this.description = null;
|
|
2172
2204
|
break;
|
|
@@ -2198,9 +2230,9 @@ var GroupChannel = class extends BaseChannel {
|
|
|
2198
2230
|
async setDefaultPermissions(permissions) {
|
|
2199
2231
|
return await this.client.channels.setDefaultPermissions(this.id, permissions);
|
|
2200
2232
|
}
|
|
2201
|
-
[util5.inspect.custom](_depth, options,
|
|
2233
|
+
[util5.inspect.custom](_depth, options, inspect13) {
|
|
2202
2234
|
const { client, ...props } = this;
|
|
2203
|
-
return `${this.constructor.name} ${
|
|
2235
|
+
return `${this.constructor.name} ${inspect13(
|
|
2204
2236
|
{
|
|
2205
2237
|
...props,
|
|
2206
2238
|
owner: this.owner,
|
|
@@ -2847,6 +2879,8 @@ var Member = class extends Base {
|
|
|
2847
2879
|
_roles = [];
|
|
2848
2880
|
// The date the member joined the server
|
|
2849
2881
|
joinedAt;
|
|
2882
|
+
// The timestamp the member joined the server
|
|
2883
|
+
joinedTimestamp;
|
|
2850
2884
|
// The date the member's timeout expires, or null if not timed out
|
|
2851
2885
|
timeout = null;
|
|
2852
2886
|
// Whatever the user can talk in Voice Chat
|
|
@@ -2855,20 +2889,53 @@ var Member = class extends Base {
|
|
|
2855
2889
|
canRecieve = false;
|
|
2856
2890
|
// Member roles manager
|
|
2857
2891
|
roles;
|
|
2892
|
+
// Member pronouns
|
|
2893
|
+
pronouns = null;
|
|
2858
2894
|
constructor(client, data, serverId) {
|
|
2859
2895
|
super(client, { _id: data._id?.user });
|
|
2860
2896
|
this.serverId = data._id?.server ?? serverId;
|
|
2861
|
-
|
|
2897
|
+
const timestamp = new Date(data.joined_at);
|
|
2898
|
+
this.joinedAt = timestamp;
|
|
2899
|
+
this.joinedTimestamp = timestamp.getTime();
|
|
2862
2900
|
this.roles = new MemberRoleManager(this);
|
|
2863
2901
|
this._patch(data);
|
|
2864
2902
|
}
|
|
2865
|
-
_patch(data) {
|
|
2903
|
+
_patch(data, clear) {
|
|
2866
2904
|
if (data.nickname !== void 0) this.nickname = data.nickname;
|
|
2867
2905
|
if (data.avatar !== void 0) this.avatar = data.avatar ? new Attachment(this.client, data.avatar) : null;
|
|
2868
2906
|
if (data.roles !== void 0) this._roles = data.roles;
|
|
2869
2907
|
if (data.timeout !== void 0) this.timeout = data.timeout ? new Date(data.timeout) : null;
|
|
2870
2908
|
if (data.can_publish !== void 0) this.canPublish = data.can_publish;
|
|
2871
2909
|
if (data.can_receive !== void 0) this.canRecieve = data.can_receive;
|
|
2910
|
+
if (data.pronouns !== void 0) this.pronouns = data.pronouns;
|
|
2911
|
+
if (clear && Array.isArray(clear)) {
|
|
2912
|
+
for (const field of clear) {
|
|
2913
|
+
switch (field) {
|
|
2914
|
+
case "Avatar":
|
|
2915
|
+
this.avatar = null;
|
|
2916
|
+
break;
|
|
2917
|
+
case "Nickname":
|
|
2918
|
+
this.nickname = null;
|
|
2919
|
+
break;
|
|
2920
|
+
case "Pronouns":
|
|
2921
|
+
this.pronouns = null;
|
|
2922
|
+
break;
|
|
2923
|
+
case "CanPublish":
|
|
2924
|
+
this.canPublish = false;
|
|
2925
|
+
break;
|
|
2926
|
+
case "Timeout":
|
|
2927
|
+
this.timeout = null;
|
|
2928
|
+
break;
|
|
2929
|
+
case "Roles":
|
|
2930
|
+
this._roles = [];
|
|
2931
|
+
this.roles = new MemberRoleManager(this);
|
|
2932
|
+
break;
|
|
2933
|
+
case "CanReceive":
|
|
2934
|
+
this.canRecieve = false;
|
|
2935
|
+
break;
|
|
2936
|
+
}
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2872
2939
|
}
|
|
2873
2940
|
/**
|
|
2874
2941
|
* Get member role IDs
|
|
@@ -2988,9 +3055,9 @@ var Member = class extends Base {
|
|
|
2988
3055
|
await server.members.kick(this.id);
|
|
2989
3056
|
}
|
|
2990
3057
|
/** @internal */
|
|
2991
|
-
[util6.inspect.custom](depth, options,
|
|
3058
|
+
[util6.inspect.custom](depth, options, inspect13) {
|
|
2992
3059
|
const { client, serverId, ...props } = this;
|
|
2993
|
-
return `${this.constructor.name} ${
|
|
3060
|
+
return `${this.constructor.name} ${inspect13(
|
|
2994
3061
|
{
|
|
2995
3062
|
...props,
|
|
2996
3063
|
user: this.user,
|
|
@@ -3221,6 +3288,7 @@ var ServerChannelManager = class {
|
|
|
3221
3288
|
|
|
3222
3289
|
// src/structures/Role.ts
|
|
3223
3290
|
import * as util9 from "util";
|
|
3291
|
+
import { decodeTime as decodeTime5 } from "ulid";
|
|
3224
3292
|
var Role = class extends Base {
|
|
3225
3293
|
serverId;
|
|
3226
3294
|
name;
|
|
@@ -3229,16 +3297,21 @@ var Role = class extends Base {
|
|
|
3229
3297
|
rank = 0;
|
|
3230
3298
|
icon = null;
|
|
3231
3299
|
_permissions = 0n;
|
|
3300
|
+
createdAt;
|
|
3301
|
+
createdTimestamp;
|
|
3232
3302
|
constructor(client, data, serverId) {
|
|
3233
3303
|
super(client, data);
|
|
3234
3304
|
this.serverId = serverId;
|
|
3305
|
+
const timestamp = decodeTime5(data._id);
|
|
3306
|
+
this.createdAt = new Date(timestamp);
|
|
3307
|
+
this.createdTimestamp = timestamp;
|
|
3235
3308
|
this._patch(data);
|
|
3236
3309
|
}
|
|
3237
3310
|
/**
|
|
3238
3311
|
* Updates the role instance with new data without losing the object reference.
|
|
3239
3312
|
* @internal
|
|
3240
3313
|
*/
|
|
3241
|
-
_patch(data) {
|
|
3314
|
+
_patch(data, clear) {
|
|
3242
3315
|
if (data.name !== void 0) this.name = data.name;
|
|
3243
3316
|
if (data.colour !== void 0) this.color = data.colour;
|
|
3244
3317
|
if (data.hoist !== void 0) this.hoist = data.hoist;
|
|
@@ -3256,6 +3329,18 @@ var Role = class extends Base {
|
|
|
3256
3329
|
this._permissions = 0n;
|
|
3257
3330
|
}
|
|
3258
3331
|
}
|
|
3332
|
+
if (clear && Array.isArray(clear)) {
|
|
3333
|
+
for (const field of clear) {
|
|
3334
|
+
switch (field) {
|
|
3335
|
+
case "Colour":
|
|
3336
|
+
this.color = null;
|
|
3337
|
+
break;
|
|
3338
|
+
case "Icon":
|
|
3339
|
+
this.icon = null;
|
|
3340
|
+
break;
|
|
3341
|
+
}
|
|
3342
|
+
}
|
|
3343
|
+
}
|
|
3259
3344
|
}
|
|
3260
3345
|
/**
|
|
3261
3346
|
* The server this role belongs to.
|
|
@@ -3751,7 +3836,7 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3751
3836
|
this.server = server;
|
|
3752
3837
|
}
|
|
3753
3838
|
extractId(data) {
|
|
3754
|
-
return data._id?.user
|
|
3839
|
+
return data._id?.user;
|
|
3755
3840
|
}
|
|
3756
3841
|
construct(data) {
|
|
3757
3842
|
return new ServerBan(data);
|
|
@@ -3763,11 +3848,6 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3763
3848
|
*/
|
|
3764
3849
|
async fetch() {
|
|
3765
3850
|
const data = await this.client.rest.get(`/servers/${this.server.id}/bans`);
|
|
3766
|
-
if (data.users && Array.isArray(data.users)) {
|
|
3767
|
-
for (const userData of data.users) {
|
|
3768
|
-
this.client.users._add(userData);
|
|
3769
|
-
}
|
|
3770
|
-
}
|
|
3771
3851
|
const rawBans = data.bans || (Array.isArray(data) ? data : []);
|
|
3772
3852
|
const fetched = new Collection();
|
|
3773
3853
|
for (const rawBan of rawBans) {
|
|
@@ -3788,14 +3868,20 @@ var ServerBanManager = class extends BaseManager {
|
|
|
3788
3868
|
};
|
|
3789
3869
|
|
|
3790
3870
|
// src/structures/Emoji.ts
|
|
3871
|
+
import { decodeTime as decodeTime6 } from "ulid";
|
|
3791
3872
|
var Emoji = class extends Base {
|
|
3792
3873
|
creatorId;
|
|
3793
3874
|
name;
|
|
3794
3875
|
parent;
|
|
3876
|
+
createdAt;
|
|
3877
|
+
createdTimestamp;
|
|
3795
3878
|
animated = false;
|
|
3796
3879
|
nsfw = false;
|
|
3797
3880
|
constructor(client, data) {
|
|
3798
3881
|
super(client, data);
|
|
3882
|
+
const timestamp = decodeTime6(data._id);
|
|
3883
|
+
this.createdAt = new Date(timestamp);
|
|
3884
|
+
this.createdTimestamp = timestamp;
|
|
3799
3885
|
this._patch(data);
|
|
3800
3886
|
}
|
|
3801
3887
|
_patch(data) {
|
|
@@ -3973,6 +4059,114 @@ var EmojiManager = class extends BaseManager {
|
|
|
3973
4059
|
}
|
|
3974
4060
|
};
|
|
3975
4061
|
|
|
4062
|
+
// src/structures/Server.ts
|
|
4063
|
+
import { decodeTime as decodeTime7 } from "ulid";
|
|
4064
|
+
|
|
4065
|
+
// src/structures/AuditLogEntry.ts
|
|
4066
|
+
import * as util12 from "util";
|
|
4067
|
+
function resolveTargetId(data) {
|
|
4068
|
+
if (data.target) return data.target;
|
|
4069
|
+
const action = data.action;
|
|
4070
|
+
switch (action.type) {
|
|
4071
|
+
case "ChannelCreate":
|
|
4072
|
+
case "ChannelEdit":
|
|
4073
|
+
case "ChannelDelete":
|
|
4074
|
+
case "ChannelRolePermissionsEdit":
|
|
4075
|
+
return action.channel;
|
|
4076
|
+
case "RoleCreate":
|
|
4077
|
+
case "RoleEdit":
|
|
4078
|
+
case "RoleDelete":
|
|
4079
|
+
return action.role;
|
|
4080
|
+
case "InviteCreate":
|
|
4081
|
+
case "InviteDelete":
|
|
4082
|
+
return action.invite;
|
|
4083
|
+
case "WebhookCreate":
|
|
4084
|
+
case "WebhookDelete":
|
|
4085
|
+
return action.webhook;
|
|
4086
|
+
case "EmojiCreate":
|
|
4087
|
+
case "EmojiUpdate":
|
|
4088
|
+
case "EmojiDelete":
|
|
4089
|
+
return action.emoji;
|
|
4090
|
+
case "MessageDelete":
|
|
4091
|
+
return action.channel;
|
|
4092
|
+
case "MessagePin":
|
|
4093
|
+
case "MessageUnpin":
|
|
4094
|
+
return action.message;
|
|
4095
|
+
case "MessageBulkDelete":
|
|
4096
|
+
return action.channel;
|
|
4097
|
+
default:
|
|
4098
|
+
return null;
|
|
4099
|
+
}
|
|
4100
|
+
}
|
|
4101
|
+
var AuditLogEntry = class extends Base {
|
|
4102
|
+
serverId;
|
|
4103
|
+
userId;
|
|
4104
|
+
targetId;
|
|
4105
|
+
reason;
|
|
4106
|
+
action;
|
|
4107
|
+
constructor(client, data) {
|
|
4108
|
+
super(client, data);
|
|
4109
|
+
this.serverId = data.server;
|
|
4110
|
+
this.userId = data.user;
|
|
4111
|
+
this.targetId = resolveTargetId(data);
|
|
4112
|
+
this.reason = data.reason ?? null;
|
|
4113
|
+
this.action = data.action;
|
|
4114
|
+
}
|
|
4115
|
+
/** The action tag, e.g. "ChannelEdit" — narrow `entry.action` on this. */
|
|
4116
|
+
get type() {
|
|
4117
|
+
return this.action.type;
|
|
4118
|
+
}
|
|
4119
|
+
get server() {
|
|
4120
|
+
return this.client.servers.cache.get(this.serverId);
|
|
4121
|
+
}
|
|
4122
|
+
/** The user who performed this action, if cached. */
|
|
4123
|
+
get executor() {
|
|
4124
|
+
return this.client.users.cache.get(this.userId);
|
|
4125
|
+
}
|
|
4126
|
+
/**
|
|
4127
|
+
* Best-effort resolve of `targetId` into the actual entity, picked by
|
|
4128
|
+
* `action.type` since a bare id alone doesn't say whether it's a member,
|
|
4129
|
+
* a role, a channel, etc.
|
|
4130
|
+
*/
|
|
4131
|
+
get target() {
|
|
4132
|
+
if (!this.targetId) return void 0;
|
|
4133
|
+
const server = this.server;
|
|
4134
|
+
switch (this.action.type) {
|
|
4135
|
+
case "MemberEdit":
|
|
4136
|
+
case "MemberKick":
|
|
4137
|
+
return server?.members.cache.get(this.targetId);
|
|
4138
|
+
case "BanCreate":
|
|
4139
|
+
case "BanDelete":
|
|
4140
|
+
return this.client.users.cache.get(this.targetId);
|
|
4141
|
+
case "ChannelCreate":
|
|
4142
|
+
case "ChannelEdit":
|
|
4143
|
+
case "ChannelDelete":
|
|
4144
|
+
case "ChannelRolePermissionsEdit":
|
|
4145
|
+
return server?.channels.cache.get(this.targetId);
|
|
4146
|
+
case "RoleCreate":
|
|
4147
|
+
case "RoleEdit":
|
|
4148
|
+
case "RoleDelete":
|
|
4149
|
+
return server?.roles.cache.get(this.targetId);
|
|
4150
|
+
default:
|
|
4151
|
+
return this.targetId;
|
|
4152
|
+
}
|
|
4153
|
+
}
|
|
4154
|
+
/**
|
|
4155
|
+
* Customizer for Node.js `console.log` and `util.inspect`.
|
|
4156
|
+
* Hides the cyclic client reference for a cleaner output.
|
|
4157
|
+
* @internal
|
|
4158
|
+
*/
|
|
4159
|
+
[util12.inspect.custom]() {
|
|
4160
|
+
const { client, ...props } = this;
|
|
4161
|
+
return `${this.constructor.name} ${util12.inspect({
|
|
4162
|
+
...props,
|
|
4163
|
+
type: this.type,
|
|
4164
|
+
executor: this.executor,
|
|
4165
|
+
target: this.target
|
|
4166
|
+
})}`;
|
|
4167
|
+
}
|
|
4168
|
+
};
|
|
4169
|
+
|
|
3976
4170
|
// src/structures/Server.ts
|
|
3977
4171
|
var Server = class extends Base {
|
|
3978
4172
|
channelIds = [];
|
|
@@ -3993,6 +4187,8 @@ var Server = class extends Base {
|
|
|
3993
4187
|
bans;
|
|
3994
4188
|
invites;
|
|
3995
4189
|
emojis;
|
|
4190
|
+
createdAt;
|
|
4191
|
+
createdTimestamp;
|
|
3996
4192
|
constructor(client, data) {
|
|
3997
4193
|
super(client, data);
|
|
3998
4194
|
this.channels = new ServerChannelManager(client, this);
|
|
@@ -4001,6 +4197,9 @@ var Server = class extends Base {
|
|
|
4001
4197
|
this.bans = new ServerBanManager(this.client, this);
|
|
4002
4198
|
this.invites = new ServerInviteManager(this.client, this);
|
|
4003
4199
|
this.emojis = new EmojiManager(this.client, this);
|
|
4200
|
+
const timestamp = decodeTime7(data._id);
|
|
4201
|
+
this.createdAt = new Date(timestamp);
|
|
4202
|
+
this.createdTimestamp = timestamp;
|
|
4004
4203
|
this._patch(data);
|
|
4005
4204
|
}
|
|
4006
4205
|
/**
|
|
@@ -4043,6 +4242,12 @@ var Server = class extends Base {
|
|
|
4043
4242
|
case "Icon":
|
|
4044
4243
|
this.icon = null;
|
|
4045
4244
|
break;
|
|
4245
|
+
case "Banner":
|
|
4246
|
+
this.banner = null;
|
|
4247
|
+
break;
|
|
4248
|
+
case "Categories":
|
|
4249
|
+
this.categories = null;
|
|
4250
|
+
break;
|
|
4046
4251
|
}
|
|
4047
4252
|
}
|
|
4048
4253
|
}
|
|
@@ -4061,6 +4266,27 @@ var Server = class extends Base {
|
|
|
4061
4266
|
async leave() {
|
|
4062
4267
|
return this.client.rest.delete(`/servers/${this.id}/leave`);
|
|
4063
4268
|
}
|
|
4269
|
+
/**
|
|
4270
|
+
* Fetch audit logs for this server
|
|
4271
|
+
* @param options Query params
|
|
4272
|
+
*/
|
|
4273
|
+
async fetchAuditLogs(options) {
|
|
4274
|
+
const query = {};
|
|
4275
|
+
if (options?.user) query.user = options.user;
|
|
4276
|
+
if (options?.target) query.target = options.target;
|
|
4277
|
+
if (options?.type) query.type = options.type;
|
|
4278
|
+
if (options?.before) query.before = options.before;
|
|
4279
|
+
if (options?.after) query.after = options.after;
|
|
4280
|
+
if (options?.limit) query.limit = options.limit;
|
|
4281
|
+
const data = await this.client.rest.get(`/servers/${this.id}/audit_logs`, query);
|
|
4282
|
+
for (const user of data.users) this.client.users._add(user);
|
|
4283
|
+
for (const member of data.members) this.members._add(member);
|
|
4284
|
+
const entries = new Collection();
|
|
4285
|
+
for (const raw of data.audit_logs) {
|
|
4286
|
+
entries.set(raw._id, new AuditLogEntry(this.client, raw));
|
|
4287
|
+
}
|
|
4288
|
+
return entries;
|
|
4289
|
+
}
|
|
4064
4290
|
/**
|
|
4065
4291
|
* Fetches multiple members from this server.
|
|
4066
4292
|
* @param options Filter options for the fetch request.
|
|
@@ -4072,7 +4298,7 @@ var Server = class extends Base {
|
|
|
4072
4298
|
};
|
|
4073
4299
|
|
|
4074
4300
|
// src/managers/ServerManager.ts
|
|
4075
|
-
import * as
|
|
4301
|
+
import * as util13 from "util";
|
|
4076
4302
|
var ServerManager = class extends BaseManager {
|
|
4077
4303
|
constructor(client, limit = Infinity) {
|
|
4078
4304
|
super(client, limit);
|
|
@@ -4143,7 +4369,7 @@ var ServerManager = class extends BaseManager {
|
|
|
4143
4369
|
const data = await this.client.rest.patch(`/servers/${serverId}`, payload);
|
|
4144
4370
|
return this._add(data);
|
|
4145
4371
|
}
|
|
4146
|
-
[
|
|
4372
|
+
[util13.inspect.custom]() {
|
|
4147
4373
|
return this.cache;
|
|
4148
4374
|
}
|
|
4149
4375
|
};
|
|
@@ -4721,6 +4947,7 @@ var EmbedBuilder = class {
|
|
|
4721
4947
|
};
|
|
4722
4948
|
|
|
4723
4949
|
// src/index.ts
|
|
4950
|
+
import { decodeTime as decodeTime8 } from "ulid";
|
|
4724
4951
|
import * as API from "stoat-api";
|
|
4725
4952
|
export {
|
|
4726
4953
|
API,
|
|
@@ -4764,6 +4991,7 @@ export {
|
|
|
4764
4991
|
User,
|
|
4765
4992
|
UserManager,
|
|
4766
4993
|
VoiceConnection,
|
|
4767
|
-
VoiceManager
|
|
4994
|
+
VoiceManager,
|
|
4995
|
+
decodeTime8 as decodeTime
|
|
4768
4996
|
};
|
|
4769
4997
|
//# sourceMappingURL=index.js.map
|