revbot.js 0.0.6 → 0.0.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/README.md +1 -1
- package/dist/index.d.mts +136 -4
- package/dist/index.d.ts +136 -4
- package/dist/index.js +181 -32
- package/dist/index.mjs +180 -32
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# Note: this package is currently in the early stages of development and testing
|
|
4
4
|
|
|
5
5
|
`revbot.js` is a Node.js library for building bots on the Revolt platform. It provides an easy-to-use interface for interacting with Revolt's API, managing events, and handling various bot functionalities.
|
|
6
|
-
[revolt server](https://rvlt.gg/
|
|
6
|
+
[revolt server](https://rvlt.gg/2NcCgYZ0) [docs](https://jade3375.github.io/revbot.js/)
|
|
7
7
|
|
|
8
8
|
## Installation
|
|
9
9
|
|
package/dist/index.d.mts
CHANGED
|
@@ -73,23 +73,51 @@ declare class UUID extends null {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
type BitFieldResolvable = BitField | number | string | BitFieldResolvable[];
|
|
76
|
+
/**
|
|
77
|
+
* Represents a bitfield that can be used to manage flags or permissions.
|
|
78
|
+
*/
|
|
76
79
|
declare class BitField {
|
|
77
80
|
static FLAGS: Record<string, number>;
|
|
78
81
|
bitfield: number;
|
|
79
82
|
constructor(bits?: BitFieldResolvable);
|
|
83
|
+
/**
|
|
84
|
+
* Resolves a bitfield or an array of bitfields into a single number.
|
|
85
|
+
* @param bit The bitfield or array of bitfields to resolve.
|
|
86
|
+
* @returns The resolved bitfield as a number.
|
|
87
|
+
*/
|
|
80
88
|
static resolve(bit: BitFieldResolvable): number;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the class that this instance belongs to.
|
|
91
|
+
* @returns The class of the bitfield.
|
|
92
|
+
*/
|
|
81
93
|
get self(): {
|
|
82
94
|
FLAGS: Record<string, number>;
|
|
83
95
|
resolve(bit: BitFieldResolvable): number;
|
|
84
96
|
new (bits?: BitFieldResolvable): BitField;
|
|
85
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* Checks if any of the bits in the bitfield are set.
|
|
100
|
+
* @param bit The bitfield or array of bitfields to check.
|
|
101
|
+
* @returns True if any bits are set, false otherwise.
|
|
102
|
+
*/
|
|
86
103
|
any(bit: BitFieldResolvable): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* checks if a specific permission is set.
|
|
106
|
+
*/
|
|
87
107
|
has(bit: BitFieldResolvable): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Returns an array of all the Permissions that are set in the bitfield.
|
|
110
|
+
* @returns An array of flag names.
|
|
111
|
+
*/
|
|
88
112
|
toArray(): string[];
|
|
89
113
|
add(...bits: BitFieldResolvable[]): this;
|
|
90
114
|
remove(...bits: BitFieldResolvable[]): this;
|
|
91
115
|
freeze(): Readonly<this>;
|
|
92
116
|
valueOf(): number;
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
* @returns A record of all flags and their boolean values indicating whether they are set.
|
|
120
|
+
*/
|
|
93
121
|
serialize(): Record<string, boolean>;
|
|
94
122
|
[Symbol.iterator](): Iterable<string>;
|
|
95
123
|
}
|
|
@@ -233,6 +261,8 @@ interface ClientEvents {
|
|
|
233
261
|
interface clientOptions {
|
|
234
262
|
/** Whether to fetch all members of a server. */
|
|
235
263
|
fetchMembers?: boolean;
|
|
264
|
+
/** wether to use X-Session-Token or X-Bot-Token*/
|
|
265
|
+
isBot?: boolean;
|
|
236
266
|
/** Configuration for REST API requests. */
|
|
237
267
|
rest?: {
|
|
238
268
|
/** The timeout for REST requests in milliseconds. */
|
|
@@ -463,6 +493,44 @@ declare class ServerPermissions extends BitField {
|
|
|
463
493
|
constructor(bits?: ServerPermissionsResolvable);
|
|
464
494
|
static resolve(bit: ServerPermissionsResolvable): number;
|
|
465
495
|
}
|
|
496
|
+
declare class FullPermissions extends BitField {
|
|
497
|
+
static readonly FLAGS: {
|
|
498
|
+
readonly ManageChannel: number;
|
|
499
|
+
readonly ManageServer: number;
|
|
500
|
+
readonly ManagePermissions: number;
|
|
501
|
+
readonly ManageRole: number;
|
|
502
|
+
readonly ManageCustomisation: number;
|
|
503
|
+
readonly KickMembers: number;
|
|
504
|
+
readonly BanMembers: number;
|
|
505
|
+
readonly TimeoutMembers: number;
|
|
506
|
+
readonly AssignRoles: number;
|
|
507
|
+
readonly ChangeNickname: number;
|
|
508
|
+
readonly ManageNicknames: number;
|
|
509
|
+
readonly ChangeAvatar: number;
|
|
510
|
+
readonly RemoveAvatars: number;
|
|
511
|
+
readonly ViewChannel: number;
|
|
512
|
+
readonly ReadMessageHistory: number;
|
|
513
|
+
readonly SendMessage: number;
|
|
514
|
+
readonly ManageMessages: number;
|
|
515
|
+
readonly ManageWebhooks: number;
|
|
516
|
+
readonly InviteOthers: number;
|
|
517
|
+
readonly SendEmbeds: number;
|
|
518
|
+
readonly UploadFiles: number;
|
|
519
|
+
readonly Masquerade: number;
|
|
520
|
+
readonly React: number;
|
|
521
|
+
readonly Connect: number;
|
|
522
|
+
readonly Speak: number;
|
|
523
|
+
readonly Video: number;
|
|
524
|
+
readonly MuteMembers: number;
|
|
525
|
+
readonly DeafenMembers: number;
|
|
526
|
+
readonly MoveMembers: number;
|
|
527
|
+
readonly MentionEveryone: number;
|
|
528
|
+
readonly MentionRoles: number;
|
|
529
|
+
readonly GrantAll: 4503599627370495;
|
|
530
|
+
};
|
|
531
|
+
constructor(bits?: number | string | FullPermissions | Array<number | string | FullPermissions>);
|
|
532
|
+
static resolve(bit: number | string | FullPermissions): number;
|
|
533
|
+
}
|
|
466
534
|
declare const DEFAULT_PERMISSION_DM: Readonly<ChannelPermissions>;
|
|
467
535
|
|
|
468
536
|
type BadgeString = keyof typeof Badges.FLAGS;
|
|
@@ -838,7 +906,7 @@ declare class Server extends Base {
|
|
|
838
906
|
/** Whether the server is marked as NSFW (Not Safe For Work). */
|
|
839
907
|
nsfw: boolean;
|
|
840
908
|
/** The default permissions for the server. */
|
|
841
|
-
permissions:
|
|
909
|
+
permissions: FullPermissions;
|
|
842
910
|
/** The categories in the server. */
|
|
843
911
|
categories: Map<string, Category>;
|
|
844
912
|
/** the emojies associated with the server */
|
|
@@ -891,6 +959,55 @@ declare class Server extends Base {
|
|
|
891
959
|
toString(): string;
|
|
892
960
|
}
|
|
893
961
|
|
|
962
|
+
/**
|
|
963
|
+
* Represents the permissions that can be set for a role.
|
|
964
|
+
*/
|
|
965
|
+
type editablePermissions = {
|
|
966
|
+
/**
|
|
967
|
+
* Permissions to allow for the role.
|
|
968
|
+
* Each key corresponds to a permission flag in FullPermissions.
|
|
969
|
+
*/
|
|
970
|
+
a?: Array<keyof (typeof FullPermissions)["FLAGS"]>;
|
|
971
|
+
/**
|
|
972
|
+
* Permissions to deny for the role.
|
|
973
|
+
* Each key corresponds to a permission flag in FullPermissions.
|
|
974
|
+
*/
|
|
975
|
+
d?: Array<keyof (typeof FullPermissions)["FLAGS"]>;
|
|
976
|
+
};
|
|
977
|
+
/**
|
|
978
|
+
* Represents a role that can be edited in a server.
|
|
979
|
+
*/
|
|
980
|
+
type editableRole = {
|
|
981
|
+
/**
|
|
982
|
+
* Name of the role.
|
|
983
|
+
*/
|
|
984
|
+
name?: string;
|
|
985
|
+
/**
|
|
986
|
+
* Colour of the role, or `null` if no colour is set.
|
|
987
|
+
*/
|
|
988
|
+
colour?: string | null;
|
|
989
|
+
/**
|
|
990
|
+
* Whether the role is displayed separately in the member list.
|
|
991
|
+
*/
|
|
992
|
+
hoist?: boolean;
|
|
993
|
+
/**
|
|
994
|
+
* Rank of the role, used for ordering.
|
|
995
|
+
*/
|
|
996
|
+
rank?: number;
|
|
997
|
+
/**
|
|
998
|
+
* Permissions to set for the role.
|
|
999
|
+
* Format: { a: allow, d: deny }
|
|
1000
|
+
*/
|
|
1001
|
+
permissions?: editablePermissions;
|
|
1002
|
+
/**
|
|
1003
|
+
* Fields to remove from the role.
|
|
1004
|
+
* Each key corresponds to a field in the Role type.
|
|
1005
|
+
*/
|
|
1006
|
+
remove?: Array<keyof Role$1 & {
|
|
1007
|
+
[key: string]: unknown;
|
|
1008
|
+
}>;
|
|
1009
|
+
};
|
|
1010
|
+
|
|
894
1011
|
/**
|
|
895
1012
|
* Represents a role in a server.
|
|
896
1013
|
*
|
|
@@ -958,6 +1075,7 @@ declare class Role extends Base {
|
|
|
958
1075
|
* ```
|
|
959
1076
|
*/
|
|
960
1077
|
delete(): Promise<void>;
|
|
1078
|
+
edit(data: editableRole): Promise<Role>;
|
|
961
1079
|
/**
|
|
962
1080
|
* Converts the role to a string representation.
|
|
963
1081
|
*
|
|
@@ -1530,8 +1648,8 @@ type APIServerChannel$1 = Extract<Channel$1, {
|
|
|
1530
1648
|
channel_type: "TextChannel" | "VoiceChannel";
|
|
1531
1649
|
}>;
|
|
1532
1650
|
interface Overwrite {
|
|
1533
|
-
allow:
|
|
1534
|
-
deny:
|
|
1651
|
+
allow: FullPermissions;
|
|
1652
|
+
deny: FullPermissions;
|
|
1535
1653
|
}
|
|
1536
1654
|
/**
|
|
1537
1655
|
* Represents a server channel, which can be a text or voice channel.
|
|
@@ -2395,6 +2513,20 @@ declare class RoleManager extends BaseManager<Role, Role$1 & {
|
|
|
2395
2513
|
* @returns A promise that resolves when the role is deleted
|
|
2396
2514
|
*/
|
|
2397
2515
|
delete(role: RoleResolvable): Promise<void>;
|
|
2516
|
+
/**
|
|
2517
|
+
*
|
|
2518
|
+
* @param role the role to edit
|
|
2519
|
+
* @param data data to edit the role with
|
|
2520
|
+
* @param data.permissions The permissions to set for the role, in the format { a: allow, d: deny }
|
|
2521
|
+
* @param data.name The name of the role
|
|
2522
|
+
* @param data.colour The color of the role, or `null` if no color is set
|
|
2523
|
+
* @param data.hoist Whether the role is displayed separately in the member list
|
|
2524
|
+
* @param data.rank The rank of the role, used for ordering
|
|
2525
|
+
* @param data.remove Fields to remove from the role
|
|
2526
|
+
* @returns Role
|
|
2527
|
+
* @throws {TypeError} If the role ID is invalid
|
|
2528
|
+
*/
|
|
2529
|
+
edit(role: RoleResolvable, data: editableRole): Promise<Role>;
|
|
2398
2530
|
}
|
|
2399
2531
|
|
|
2400
2532
|
type APIServerChannel = Extract<Channel$1, {
|
|
@@ -2485,4 +2617,4 @@ declare class ServerMemberManager extends BaseManager<ServerMember, Member> {
|
|
|
2485
2617
|
resolveId(member: ServerMemberResolvable): string | null;
|
|
2486
2618
|
}
|
|
2487
2619
|
|
|
2488
|
-
export { Attachment, type BadgeString, Badges, type BadgesResolvable, Base, BaseManager, BitField, type BitFieldResolvable, Category, Channel, ChannelManager, ChannelPermissions, type ChannelPermissionsResolvable, type ChannelPermissionsString, type ChannelResolvable, ChannelTypes, type CreateChannelOptions, DEFAULT_CLIENT_OPTIONS, DEFAULT_PERMISSION_DM, DMChannel, type EditServerMemberOptions, type EditServerOptions, type Embed, type EmbedImage, type EmbedSpecial, type EmbedVideo, Emoji, Events, GroupChannel, Invite, Mentions, Message, type MessageEditOptions, MessageEmbed, MessageManager, type MessageOptions, type MessageQueryOptions, type MessageReply, type MessageResolvable, type MessageSearchOptions, NotesChannel, type Overwrite, Presence, Role, RoleManager, type RoleResolvable, SYSTEM_USER_ID, Server, ServerChannel, ServerChannelManager, type ServerChannelResolvable, ServerManager, ServerMember, ServerMemberManager, type ServerMemberResolvable, ServerPermissions, type ServerPermissionsResolvable, type ServerPermissionsString, type ServerResolvable, Status, TextChannel, UUID, User, UserManager, UserPermissions, type UserPermissionsResolvable, type UserPermissionsString, type UserResolvable, VoiceChannel, WSEvents, apiUrl, cdnUrl, client, wsUrl };
|
|
2620
|
+
export { Attachment, type BadgeString, Badges, type BadgesResolvable, Base, BaseManager, BitField, type BitFieldResolvable, Category, Channel, ChannelManager, ChannelPermissions, type ChannelPermissionsResolvable, type ChannelPermissionsString, type ChannelResolvable, ChannelTypes, type CreateChannelOptions, DEFAULT_CLIENT_OPTIONS, DEFAULT_PERMISSION_DM, DMChannel, type EditServerMemberOptions, type EditServerOptions, type Embed, type EmbedImage, type EmbedSpecial, type EmbedVideo, Emoji, Events, FullPermissions, GroupChannel, Invite, Mentions, Message, type MessageEditOptions, MessageEmbed, MessageManager, type MessageOptions, type MessageQueryOptions, type MessageReply, type MessageResolvable, type MessageSearchOptions, NotesChannel, type Overwrite, Presence, Role, RoleManager, type RoleResolvable, SYSTEM_USER_ID, Server, ServerChannel, ServerChannelManager, type ServerChannelResolvable, ServerManager, ServerMember, ServerMemberManager, type ServerMemberResolvable, ServerPermissions, type ServerPermissionsResolvable, type ServerPermissionsString, type ServerResolvable, Status, TextChannel, UUID, User, UserManager, UserPermissions, type UserPermissionsResolvable, type UserPermissionsString, type UserResolvable, VoiceChannel, WSEvents, apiUrl, cdnUrl, client, wsUrl };
|
package/dist/index.d.ts
CHANGED
|
@@ -73,23 +73,51 @@ declare class UUID extends null {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
type BitFieldResolvable = BitField | number | string | BitFieldResolvable[];
|
|
76
|
+
/**
|
|
77
|
+
* Represents a bitfield that can be used to manage flags or permissions.
|
|
78
|
+
*/
|
|
76
79
|
declare class BitField {
|
|
77
80
|
static FLAGS: Record<string, number>;
|
|
78
81
|
bitfield: number;
|
|
79
82
|
constructor(bits?: BitFieldResolvable);
|
|
83
|
+
/**
|
|
84
|
+
* Resolves a bitfield or an array of bitfields into a single number.
|
|
85
|
+
* @param bit The bitfield or array of bitfields to resolve.
|
|
86
|
+
* @returns The resolved bitfield as a number.
|
|
87
|
+
*/
|
|
80
88
|
static resolve(bit: BitFieldResolvable): number;
|
|
89
|
+
/**
|
|
90
|
+
* Returns the class that this instance belongs to.
|
|
91
|
+
* @returns The class of the bitfield.
|
|
92
|
+
*/
|
|
81
93
|
get self(): {
|
|
82
94
|
FLAGS: Record<string, number>;
|
|
83
95
|
resolve(bit: BitFieldResolvable): number;
|
|
84
96
|
new (bits?: BitFieldResolvable): BitField;
|
|
85
97
|
};
|
|
98
|
+
/**
|
|
99
|
+
* Checks if any of the bits in the bitfield are set.
|
|
100
|
+
* @param bit The bitfield or array of bitfields to check.
|
|
101
|
+
* @returns True if any bits are set, false otherwise.
|
|
102
|
+
*/
|
|
86
103
|
any(bit: BitFieldResolvable): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* checks if a specific permission is set.
|
|
106
|
+
*/
|
|
87
107
|
has(bit: BitFieldResolvable): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Returns an array of all the Permissions that are set in the bitfield.
|
|
110
|
+
* @returns An array of flag names.
|
|
111
|
+
*/
|
|
88
112
|
toArray(): string[];
|
|
89
113
|
add(...bits: BitFieldResolvable[]): this;
|
|
90
114
|
remove(...bits: BitFieldResolvable[]): this;
|
|
91
115
|
freeze(): Readonly<this>;
|
|
92
116
|
valueOf(): number;
|
|
117
|
+
/**
|
|
118
|
+
*
|
|
119
|
+
* @returns A record of all flags and their boolean values indicating whether they are set.
|
|
120
|
+
*/
|
|
93
121
|
serialize(): Record<string, boolean>;
|
|
94
122
|
[Symbol.iterator](): Iterable<string>;
|
|
95
123
|
}
|
|
@@ -233,6 +261,8 @@ interface ClientEvents {
|
|
|
233
261
|
interface clientOptions {
|
|
234
262
|
/** Whether to fetch all members of a server. */
|
|
235
263
|
fetchMembers?: boolean;
|
|
264
|
+
/** wether to use X-Session-Token or X-Bot-Token*/
|
|
265
|
+
isBot?: boolean;
|
|
236
266
|
/** Configuration for REST API requests. */
|
|
237
267
|
rest?: {
|
|
238
268
|
/** The timeout for REST requests in milliseconds. */
|
|
@@ -463,6 +493,44 @@ declare class ServerPermissions extends BitField {
|
|
|
463
493
|
constructor(bits?: ServerPermissionsResolvable);
|
|
464
494
|
static resolve(bit: ServerPermissionsResolvable): number;
|
|
465
495
|
}
|
|
496
|
+
declare class FullPermissions extends BitField {
|
|
497
|
+
static readonly FLAGS: {
|
|
498
|
+
readonly ManageChannel: number;
|
|
499
|
+
readonly ManageServer: number;
|
|
500
|
+
readonly ManagePermissions: number;
|
|
501
|
+
readonly ManageRole: number;
|
|
502
|
+
readonly ManageCustomisation: number;
|
|
503
|
+
readonly KickMembers: number;
|
|
504
|
+
readonly BanMembers: number;
|
|
505
|
+
readonly TimeoutMembers: number;
|
|
506
|
+
readonly AssignRoles: number;
|
|
507
|
+
readonly ChangeNickname: number;
|
|
508
|
+
readonly ManageNicknames: number;
|
|
509
|
+
readonly ChangeAvatar: number;
|
|
510
|
+
readonly RemoveAvatars: number;
|
|
511
|
+
readonly ViewChannel: number;
|
|
512
|
+
readonly ReadMessageHistory: number;
|
|
513
|
+
readonly SendMessage: number;
|
|
514
|
+
readonly ManageMessages: number;
|
|
515
|
+
readonly ManageWebhooks: number;
|
|
516
|
+
readonly InviteOthers: number;
|
|
517
|
+
readonly SendEmbeds: number;
|
|
518
|
+
readonly UploadFiles: number;
|
|
519
|
+
readonly Masquerade: number;
|
|
520
|
+
readonly React: number;
|
|
521
|
+
readonly Connect: number;
|
|
522
|
+
readonly Speak: number;
|
|
523
|
+
readonly Video: number;
|
|
524
|
+
readonly MuteMembers: number;
|
|
525
|
+
readonly DeafenMembers: number;
|
|
526
|
+
readonly MoveMembers: number;
|
|
527
|
+
readonly MentionEveryone: number;
|
|
528
|
+
readonly MentionRoles: number;
|
|
529
|
+
readonly GrantAll: 4503599627370495;
|
|
530
|
+
};
|
|
531
|
+
constructor(bits?: number | string | FullPermissions | Array<number | string | FullPermissions>);
|
|
532
|
+
static resolve(bit: number | string | FullPermissions): number;
|
|
533
|
+
}
|
|
466
534
|
declare const DEFAULT_PERMISSION_DM: Readonly<ChannelPermissions>;
|
|
467
535
|
|
|
468
536
|
type BadgeString = keyof typeof Badges.FLAGS;
|
|
@@ -838,7 +906,7 @@ declare class Server extends Base {
|
|
|
838
906
|
/** Whether the server is marked as NSFW (Not Safe For Work). */
|
|
839
907
|
nsfw: boolean;
|
|
840
908
|
/** The default permissions for the server. */
|
|
841
|
-
permissions:
|
|
909
|
+
permissions: FullPermissions;
|
|
842
910
|
/** The categories in the server. */
|
|
843
911
|
categories: Map<string, Category>;
|
|
844
912
|
/** the emojies associated with the server */
|
|
@@ -891,6 +959,55 @@ declare class Server extends Base {
|
|
|
891
959
|
toString(): string;
|
|
892
960
|
}
|
|
893
961
|
|
|
962
|
+
/**
|
|
963
|
+
* Represents the permissions that can be set for a role.
|
|
964
|
+
*/
|
|
965
|
+
type editablePermissions = {
|
|
966
|
+
/**
|
|
967
|
+
* Permissions to allow for the role.
|
|
968
|
+
* Each key corresponds to a permission flag in FullPermissions.
|
|
969
|
+
*/
|
|
970
|
+
a?: Array<keyof (typeof FullPermissions)["FLAGS"]>;
|
|
971
|
+
/**
|
|
972
|
+
* Permissions to deny for the role.
|
|
973
|
+
* Each key corresponds to a permission flag in FullPermissions.
|
|
974
|
+
*/
|
|
975
|
+
d?: Array<keyof (typeof FullPermissions)["FLAGS"]>;
|
|
976
|
+
};
|
|
977
|
+
/**
|
|
978
|
+
* Represents a role that can be edited in a server.
|
|
979
|
+
*/
|
|
980
|
+
type editableRole = {
|
|
981
|
+
/**
|
|
982
|
+
* Name of the role.
|
|
983
|
+
*/
|
|
984
|
+
name?: string;
|
|
985
|
+
/**
|
|
986
|
+
* Colour of the role, or `null` if no colour is set.
|
|
987
|
+
*/
|
|
988
|
+
colour?: string | null;
|
|
989
|
+
/**
|
|
990
|
+
* Whether the role is displayed separately in the member list.
|
|
991
|
+
*/
|
|
992
|
+
hoist?: boolean;
|
|
993
|
+
/**
|
|
994
|
+
* Rank of the role, used for ordering.
|
|
995
|
+
*/
|
|
996
|
+
rank?: number;
|
|
997
|
+
/**
|
|
998
|
+
* Permissions to set for the role.
|
|
999
|
+
* Format: { a: allow, d: deny }
|
|
1000
|
+
*/
|
|
1001
|
+
permissions?: editablePermissions;
|
|
1002
|
+
/**
|
|
1003
|
+
* Fields to remove from the role.
|
|
1004
|
+
* Each key corresponds to a field in the Role type.
|
|
1005
|
+
*/
|
|
1006
|
+
remove?: Array<keyof Role$1 & {
|
|
1007
|
+
[key: string]: unknown;
|
|
1008
|
+
}>;
|
|
1009
|
+
};
|
|
1010
|
+
|
|
894
1011
|
/**
|
|
895
1012
|
* Represents a role in a server.
|
|
896
1013
|
*
|
|
@@ -958,6 +1075,7 @@ declare class Role extends Base {
|
|
|
958
1075
|
* ```
|
|
959
1076
|
*/
|
|
960
1077
|
delete(): Promise<void>;
|
|
1078
|
+
edit(data: editableRole): Promise<Role>;
|
|
961
1079
|
/**
|
|
962
1080
|
* Converts the role to a string representation.
|
|
963
1081
|
*
|
|
@@ -1530,8 +1648,8 @@ type APIServerChannel$1 = Extract<Channel$1, {
|
|
|
1530
1648
|
channel_type: "TextChannel" | "VoiceChannel";
|
|
1531
1649
|
}>;
|
|
1532
1650
|
interface Overwrite {
|
|
1533
|
-
allow:
|
|
1534
|
-
deny:
|
|
1651
|
+
allow: FullPermissions;
|
|
1652
|
+
deny: FullPermissions;
|
|
1535
1653
|
}
|
|
1536
1654
|
/**
|
|
1537
1655
|
* Represents a server channel, which can be a text or voice channel.
|
|
@@ -2395,6 +2513,20 @@ declare class RoleManager extends BaseManager<Role, Role$1 & {
|
|
|
2395
2513
|
* @returns A promise that resolves when the role is deleted
|
|
2396
2514
|
*/
|
|
2397
2515
|
delete(role: RoleResolvable): Promise<void>;
|
|
2516
|
+
/**
|
|
2517
|
+
*
|
|
2518
|
+
* @param role the role to edit
|
|
2519
|
+
* @param data data to edit the role with
|
|
2520
|
+
* @param data.permissions The permissions to set for the role, in the format { a: allow, d: deny }
|
|
2521
|
+
* @param data.name The name of the role
|
|
2522
|
+
* @param data.colour The color of the role, or `null` if no color is set
|
|
2523
|
+
* @param data.hoist Whether the role is displayed separately in the member list
|
|
2524
|
+
* @param data.rank The rank of the role, used for ordering
|
|
2525
|
+
* @param data.remove Fields to remove from the role
|
|
2526
|
+
* @returns Role
|
|
2527
|
+
* @throws {TypeError} If the role ID is invalid
|
|
2528
|
+
*/
|
|
2529
|
+
edit(role: RoleResolvable, data: editableRole): Promise<Role>;
|
|
2398
2530
|
}
|
|
2399
2531
|
|
|
2400
2532
|
type APIServerChannel = Extract<Channel$1, {
|
|
@@ -2485,4 +2617,4 @@ declare class ServerMemberManager extends BaseManager<ServerMember, Member> {
|
|
|
2485
2617
|
resolveId(member: ServerMemberResolvable): string | null;
|
|
2486
2618
|
}
|
|
2487
2619
|
|
|
2488
|
-
export { Attachment, type BadgeString, Badges, type BadgesResolvable, Base, BaseManager, BitField, type BitFieldResolvable, Category, Channel, ChannelManager, ChannelPermissions, type ChannelPermissionsResolvable, type ChannelPermissionsString, type ChannelResolvable, ChannelTypes, type CreateChannelOptions, DEFAULT_CLIENT_OPTIONS, DEFAULT_PERMISSION_DM, DMChannel, type EditServerMemberOptions, type EditServerOptions, type Embed, type EmbedImage, type EmbedSpecial, type EmbedVideo, Emoji, Events, GroupChannel, Invite, Mentions, Message, type MessageEditOptions, MessageEmbed, MessageManager, type MessageOptions, type MessageQueryOptions, type MessageReply, type MessageResolvable, type MessageSearchOptions, NotesChannel, type Overwrite, Presence, Role, RoleManager, type RoleResolvable, SYSTEM_USER_ID, Server, ServerChannel, ServerChannelManager, type ServerChannelResolvable, ServerManager, ServerMember, ServerMemberManager, type ServerMemberResolvable, ServerPermissions, type ServerPermissionsResolvable, type ServerPermissionsString, type ServerResolvable, Status, TextChannel, UUID, User, UserManager, UserPermissions, type UserPermissionsResolvable, type UserPermissionsString, type UserResolvable, VoiceChannel, WSEvents, apiUrl, cdnUrl, client, wsUrl };
|
|
2620
|
+
export { Attachment, type BadgeString, Badges, type BadgesResolvable, Base, BaseManager, BitField, type BitFieldResolvable, Category, Channel, ChannelManager, ChannelPermissions, type ChannelPermissionsResolvable, type ChannelPermissionsString, type ChannelResolvable, ChannelTypes, type CreateChannelOptions, DEFAULT_CLIENT_OPTIONS, DEFAULT_PERMISSION_DM, DMChannel, type EditServerMemberOptions, type EditServerOptions, type Embed, type EmbedImage, type EmbedSpecial, type EmbedVideo, Emoji, Events, FullPermissions, GroupChannel, Invite, Mentions, Message, type MessageEditOptions, MessageEmbed, MessageManager, type MessageOptions, type MessageQueryOptions, type MessageReply, type MessageResolvable, type MessageSearchOptions, NotesChannel, type Overwrite, Presence, Role, RoleManager, type RoleResolvable, SYSTEM_USER_ID, Server, ServerChannel, ServerChannelManager, type ServerChannelResolvable, ServerManager, ServerMember, ServerMemberManager, type ServerMemberResolvable, ServerPermissions, type ServerPermissionsResolvable, type ServerPermissionsString, type ServerResolvable, Status, TextChannel, UUID, User, UserManager, UserPermissions, type UserPermissionsResolvable, type UserPermissionsString, type UserResolvable, VoiceChannel, WSEvents, apiUrl, cdnUrl, client, wsUrl };
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.
|
|
|
13
13
|
var __typeError = (msg) => {
|
|
14
14
|
throw TypeError(msg);
|
|
15
15
|
};
|
|
16
|
+
var __pow = Math.pow;
|
|
16
17
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
17
18
|
var __spreadValues = (a, b) => {
|
|
18
19
|
for (var prop in b || (b = {}))
|
|
@@ -122,6 +123,7 @@ __export(index_exports, {
|
|
|
122
123
|
DMChannel: () => DMChannel3,
|
|
123
124
|
Emoji: () => Emoji2,
|
|
124
125
|
Events: () => Events,
|
|
126
|
+
FullPermissions: () => FullPermissions,
|
|
125
127
|
GroupChannel: () => GroupChannel2,
|
|
126
128
|
Invite: () => Invite,
|
|
127
129
|
Mentions: () => Mentions,
|
|
@@ -197,6 +199,11 @@ var _BitField = class _BitField {
|
|
|
197
199
|
this.bitfield = DEFAULT_BIT;
|
|
198
200
|
this.bitfield = this.self.resolve(bits);
|
|
199
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Resolves a bitfield or an array of bitfields into a single number.
|
|
204
|
+
* @param bit The bitfield or array of bitfields to resolve.
|
|
205
|
+
* @returns The resolved bitfield as a number.
|
|
206
|
+
*/
|
|
200
207
|
static resolve(bit) {
|
|
201
208
|
if (bit instanceof _BitField) return bit.bitfield;
|
|
202
209
|
if (typeof bit === "number" && bit >= DEFAULT_BIT) return bit;
|
|
@@ -206,17 +213,33 @@ var _BitField = class _BitField {
|
|
|
206
213
|
if (typeof this.FLAGS[bit] !== "undefined") return this.FLAGS[bit];
|
|
207
214
|
throw new Error("BITFIELD_INVALID");
|
|
208
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Returns the class that this instance belongs to.
|
|
218
|
+
* @returns The class of the bitfield.
|
|
219
|
+
*/
|
|
209
220
|
get self() {
|
|
210
221
|
return this.constructor;
|
|
211
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Checks if any of the bits in the bitfield are set.
|
|
225
|
+
* @param bit The bitfield or array of bitfields to check.
|
|
226
|
+
* @returns True if any bits are set, false otherwise.
|
|
227
|
+
*/
|
|
212
228
|
any(bit) {
|
|
213
229
|
bit = this.self.resolve(bit);
|
|
214
230
|
return (this.bitfield & bit) !== DEFAULT_BIT;
|
|
215
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* checks if a specific permission is set.
|
|
234
|
+
*/
|
|
216
235
|
has(bit) {
|
|
217
236
|
bit = this.self.resolve(bit);
|
|
218
237
|
return (this.bitfield & bit) === bit;
|
|
219
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Returns an array of all the Permissions that are set in the bitfield.
|
|
241
|
+
* @returns An array of flag names.
|
|
242
|
+
*/
|
|
220
243
|
toArray() {
|
|
221
244
|
return Object.keys(this.self.FLAGS).filter((bit) => this.has(bit));
|
|
222
245
|
}
|
|
@@ -248,6 +271,10 @@ var _BitField = class _BitField {
|
|
|
248
271
|
valueOf() {
|
|
249
272
|
return this.bitfield;
|
|
250
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
*
|
|
276
|
+
* @returns A record of all flags and their boolean values indicating whether they are set.
|
|
277
|
+
*/
|
|
251
278
|
serialize() {
|
|
252
279
|
const serialized = {};
|
|
253
280
|
for (const [flag, bit] of Object.entries(this.self.FLAGS)) {
|
|
@@ -478,14 +505,14 @@ var ChannelPermissions = class extends BitField {
|
|
|
478
505
|
}
|
|
479
506
|
};
|
|
480
507
|
ChannelPermissions.FLAGS = {
|
|
481
|
-
VIEW_CHANNEL: 1
|
|
482
|
-
SEND_MESSAGE: 1
|
|
483
|
-
MANAGE_MESSAGE: 1
|
|
484
|
-
MANAGE_CHANNEL: 1
|
|
485
|
-
VOICE_CALL: 1
|
|
486
|
-
INVITE_OTHERS: 1
|
|
487
|
-
EMBED_LINKS: 1
|
|
488
|
-
UPLOAD_FILES: 1
|
|
508
|
+
VIEW_CHANNEL: __pow(1, 0),
|
|
509
|
+
SEND_MESSAGE: __pow(1, 22),
|
|
510
|
+
MANAGE_MESSAGE: __pow(1, 2),
|
|
511
|
+
MANAGE_CHANNEL: __pow(1, 3),
|
|
512
|
+
VOICE_CALL: __pow(1, 4),
|
|
513
|
+
INVITE_OTHERS: __pow(1, 5),
|
|
514
|
+
EMBED_LINKS: __pow(1, 6),
|
|
515
|
+
UPLOAD_FILES: __pow(1, 7)
|
|
489
516
|
};
|
|
490
517
|
var UserPermissions = class extends BitField {
|
|
491
518
|
constructor(bits) {
|
|
@@ -496,10 +523,10 @@ var UserPermissions = class extends BitField {
|
|
|
496
523
|
}
|
|
497
524
|
};
|
|
498
525
|
UserPermissions.FLAGS = {
|
|
499
|
-
ACCESS: 1
|
|
500
|
-
VIEW_PROFILE: 1
|
|
501
|
-
SEND_MESSAGES: 1
|
|
502
|
-
INVITE: 1
|
|
526
|
+
ACCESS: __pow(1, 0),
|
|
527
|
+
VIEW_PROFILE: __pow(1, 1),
|
|
528
|
+
SEND_MESSAGES: __pow(1, 2),
|
|
529
|
+
INVITE: __pow(1, 3)
|
|
503
530
|
};
|
|
504
531
|
var ServerPermissions = class extends BitField {
|
|
505
532
|
constructor(bits) {
|
|
@@ -510,16 +537,96 @@ var ServerPermissions = class extends BitField {
|
|
|
510
537
|
}
|
|
511
538
|
};
|
|
512
539
|
ServerPermissions.FLAGS = {
|
|
513
|
-
VIEW_SERVER: 1
|
|
514
|
-
MANAGE_ROLES: 1
|
|
515
|
-
MANAGE_CHANNELS: 1
|
|
516
|
-
MANAGE_SERVER: 1
|
|
517
|
-
KICK_MEMBERS: 1
|
|
518
|
-
BAN_MEMBERS: 1
|
|
519
|
-
CHANGE_NICKNAME: 1
|
|
520
|
-
MANAGE_NICKNAMES: 1
|
|
521
|
-
CHANGE_AVATAR: 1
|
|
522
|
-
REMOVE_AVATARS: 1
|
|
540
|
+
VIEW_SERVER: __pow(1, 0),
|
|
541
|
+
MANAGE_ROLES: __pow(1, 1),
|
|
542
|
+
MANAGE_CHANNELS: __pow(1, 2),
|
|
543
|
+
MANAGE_SERVER: __pow(1, 3),
|
|
544
|
+
KICK_MEMBERS: __pow(1, 4),
|
|
545
|
+
BAN_MEMBERS: __pow(1, 5),
|
|
546
|
+
CHANGE_NICKNAME: __pow(1, 12),
|
|
547
|
+
MANAGE_NICKNAMES: __pow(1, 13),
|
|
548
|
+
CHANGE_AVATAR: __pow(1, 14),
|
|
549
|
+
REMOVE_AVATARS: __pow(1, 15)
|
|
550
|
+
};
|
|
551
|
+
var FullPermissions = class extends BitField {
|
|
552
|
+
constructor(bits) {
|
|
553
|
+
super(bits);
|
|
554
|
+
}
|
|
555
|
+
static resolve(bit) {
|
|
556
|
+
return super.resolve(bit);
|
|
557
|
+
}
|
|
558
|
+
};
|
|
559
|
+
FullPermissions.FLAGS = {
|
|
560
|
+
// * Generic permissions
|
|
561
|
+
/// Manage the channel or channels on the server
|
|
562
|
+
ManageChannel: __pow(2, 0),
|
|
563
|
+
/// Manage the server
|
|
564
|
+
ManageServer: __pow(2, 1),
|
|
565
|
+
/// Manage permissions on servers or channels
|
|
566
|
+
ManagePermissions: __pow(2, 2),
|
|
567
|
+
/// Manage roles on server
|
|
568
|
+
ManageRole: __pow(2, 3),
|
|
569
|
+
/// Manage server customisation (includes emoji)
|
|
570
|
+
ManageCustomisation: __pow(2, 4),
|
|
571
|
+
// * Member permissions
|
|
572
|
+
/// Kick other members below their ranking
|
|
573
|
+
KickMembers: __pow(2, 6),
|
|
574
|
+
/// Ban other members below their ranking
|
|
575
|
+
BanMembers: __pow(2, 7),
|
|
576
|
+
/// Timeout other members below their ranking
|
|
577
|
+
TimeoutMembers: __pow(2, 8),
|
|
578
|
+
/// Assign roles to members below their ranking
|
|
579
|
+
AssignRoles: __pow(2, 9),
|
|
580
|
+
/// Change own nickname
|
|
581
|
+
ChangeNickname: __pow(2, 10),
|
|
582
|
+
/// Change or remove other's nicknames below their ranking
|
|
583
|
+
ManageNicknames: __pow(2, 11),
|
|
584
|
+
/// Change own avatar
|
|
585
|
+
ChangeAvatar: __pow(2, 12),
|
|
586
|
+
/// Remove other's avatars below their ranking
|
|
587
|
+
RemoveAvatars: __pow(2, 13),
|
|
588
|
+
// * Channel permissions
|
|
589
|
+
/// View a channel
|
|
590
|
+
ViewChannel: __pow(2, 20),
|
|
591
|
+
/// Read a channel's past message history
|
|
592
|
+
ReadMessageHistory: __pow(2, 21),
|
|
593
|
+
/// Send a message in a channel
|
|
594
|
+
SendMessage: __pow(2, 22),
|
|
595
|
+
/// Delete messages in a channel
|
|
596
|
+
ManageMessages: __pow(2, 23),
|
|
597
|
+
/// Manage webhook entries on a channel
|
|
598
|
+
ManageWebhooks: __pow(2, 24),
|
|
599
|
+
/// Create invites to this channel
|
|
600
|
+
InviteOthers: __pow(2, 25),
|
|
601
|
+
/// Send embedded content in this channel
|
|
602
|
+
SendEmbeds: __pow(2, 26),
|
|
603
|
+
/// Send attachments and media in this channel
|
|
604
|
+
UploadFiles: __pow(2, 27),
|
|
605
|
+
/// Masquerade messages using custom nickname and avatar
|
|
606
|
+
Masquerade: __pow(2, 28),
|
|
607
|
+
/// React to messages with emoji
|
|
608
|
+
React: __pow(2, 29),
|
|
609
|
+
// * Voice permissions
|
|
610
|
+
/// Connect to a voice channel
|
|
611
|
+
Connect: __pow(2, 30),
|
|
612
|
+
/// Speak in a voice call
|
|
613
|
+
Speak: __pow(2, 31),
|
|
614
|
+
/// Share video in a voice call
|
|
615
|
+
Video: __pow(2, 32),
|
|
616
|
+
/// Mute other members with lower ranking in a voice call
|
|
617
|
+
MuteMembers: __pow(2, 33),
|
|
618
|
+
/// Deafen other members with lower ranking in a voice call
|
|
619
|
+
DeafenMembers: __pow(2, 34),
|
|
620
|
+
/// Move members between voice channels
|
|
621
|
+
MoveMembers: __pow(2, 35),
|
|
622
|
+
// * Mention permissions
|
|
623
|
+
/// Mention @everyone or @online
|
|
624
|
+
MentionEveryone: __pow(2, 37),
|
|
625
|
+
/// Mention a role
|
|
626
|
+
MentionRoles: __pow(2, 38),
|
|
627
|
+
// * Grant all permissions
|
|
628
|
+
/// Safely grant all permissions
|
|
629
|
+
GrantAll: 4503599627370495
|
|
523
630
|
};
|
|
524
631
|
var DEFAULT_PERMISSION_DM = new ChannelPermissions([
|
|
525
632
|
"VIEW_CHANNEL",
|
|
@@ -1066,9 +1173,7 @@ var Server2 = class extends Base {
|
|
|
1066
1173
|
}
|
|
1067
1174
|
}
|
|
1068
1175
|
if (typeof data.default_permissions === "number") {
|
|
1069
|
-
this.permissions = new
|
|
1070
|
-
data.default_permissions
|
|
1071
|
-
).freeze();
|
|
1176
|
+
this.permissions = new FullPermissions(data.default_permissions).freeze();
|
|
1072
1177
|
}
|
|
1073
1178
|
if (typeof data.analytics === "boolean") this.analytics = data.analytics;
|
|
1074
1179
|
if (typeof data.discoverable === "boolean") {
|
|
@@ -1171,8 +1276,8 @@ var Role = class extends Base {
|
|
|
1171
1276
|
if (data.permissions) {
|
|
1172
1277
|
const { a, d } = data.permissions;
|
|
1173
1278
|
this.overwrite = {
|
|
1174
|
-
allow: new
|
|
1175
|
-
deny: new
|
|
1279
|
+
allow: new FullPermissions(a),
|
|
1280
|
+
deny: new FullPermissions(d)
|
|
1176
1281
|
};
|
|
1177
1282
|
}
|
|
1178
1283
|
for (const field of clear) {
|
|
@@ -1218,6 +1323,9 @@ var Role = class extends Base {
|
|
|
1218
1323
|
delete() {
|
|
1219
1324
|
return this.server.roles.delete(this);
|
|
1220
1325
|
}
|
|
1326
|
+
edit(data) {
|
|
1327
|
+
return this.server.roles.edit(this, data);
|
|
1328
|
+
}
|
|
1221
1329
|
/**
|
|
1222
1330
|
* Converts the role to a string representation.
|
|
1223
1331
|
*
|
|
@@ -1974,8 +2082,8 @@ var ServerChannel = class extends Channel {
|
|
|
1974
2082
|
this.overwrites.clear();
|
|
1975
2083
|
for (const [id, { a, d }] of Object.entries(data.role_permissions)) {
|
|
1976
2084
|
this.overwrites.set(id, {
|
|
1977
|
-
allow: new
|
|
1978
|
-
deny: new
|
|
2085
|
+
allow: new FullPermissions(a),
|
|
2086
|
+
deny: new FullPermissions(d)
|
|
1979
2087
|
});
|
|
1980
2088
|
}
|
|
1981
2089
|
}
|
|
@@ -2893,6 +3001,42 @@ var RoleManager = class extends BaseManager {
|
|
|
2893
3001
|
yield this.client.api.delete(`/servers/${this.server.id}/roles/${id}`);
|
|
2894
3002
|
});
|
|
2895
3003
|
}
|
|
3004
|
+
/**
|
|
3005
|
+
*
|
|
3006
|
+
* @param role the role to edit
|
|
3007
|
+
* @param data data to edit the role with
|
|
3008
|
+
* @param data.permissions The permissions to set for the role, in the format { a: allow, d: deny }
|
|
3009
|
+
* @param data.name The name of the role
|
|
3010
|
+
* @param data.colour The color of the role, or `null` if no color is set
|
|
3011
|
+
* @param data.hoist Whether the role is displayed separately in the member list
|
|
3012
|
+
* @param data.rank The rank of the role, used for ordering
|
|
3013
|
+
* @param data.remove Fields to remove from the role
|
|
3014
|
+
* @returns Role
|
|
3015
|
+
* @throws {TypeError} If the role ID is invalid
|
|
3016
|
+
*/
|
|
3017
|
+
edit(role, data) {
|
|
3018
|
+
return __async(this, null, function* () {
|
|
3019
|
+
var _a, _b;
|
|
3020
|
+
const id = this.resolveId(role);
|
|
3021
|
+
if (!id) throw new TypeError("INVALID_TYPE");
|
|
3022
|
+
if (data.permissions) {
|
|
3023
|
+
const permissions = {
|
|
3024
|
+
allow: new FullPermissions(((_a = data.permissions) == null ? void 0 : _a.a) || []).bitfield,
|
|
3025
|
+
deny: new FullPermissions(((_b = data.permissions) == null ? void 0 : _b.d) || []).bitfield
|
|
3026
|
+
};
|
|
3027
|
+
yield this.client.api.put(
|
|
3028
|
+
`/servers/${this.server.id}/permissions/${id}`,
|
|
3029
|
+
{ body: { permissions } }
|
|
3030
|
+
);
|
|
3031
|
+
}
|
|
3032
|
+
delete data.permissions;
|
|
3033
|
+
const updatedRole = yield this.client.api.patch(
|
|
3034
|
+
`/servers/${this.server.id}/roles/${id}`,
|
|
3035
|
+
{ body: data }
|
|
3036
|
+
);
|
|
3037
|
+
return this._add(Object.assign(updatedRole, { id }));
|
|
3038
|
+
});
|
|
3039
|
+
}
|
|
2896
3040
|
};
|
|
2897
3041
|
|
|
2898
3042
|
// src/managers/serverChannelManager.ts
|
|
@@ -3091,7 +3235,7 @@ var import_node_events = require("events");
|
|
|
3091
3235
|
var import_axios3 = __toESM(require("axios"));
|
|
3092
3236
|
|
|
3093
3237
|
// package.json
|
|
3094
|
-
var version = "0.0.
|
|
3238
|
+
var version = "0.0.8";
|
|
3095
3239
|
|
|
3096
3240
|
// src/rest/restClient.ts
|
|
3097
3241
|
var RestClient = class {
|
|
@@ -3110,13 +3254,14 @@ var RestClient = class {
|
|
|
3110
3254
|
return __async(this, null, function* () {
|
|
3111
3255
|
try {
|
|
3112
3256
|
if (!this.client.token) throw new Error("Token is required");
|
|
3257
|
+
const authHeader = this.client.bot ? "X-Bot-Token" : "X-Session-Token";
|
|
3113
3258
|
const config = {
|
|
3114
3259
|
method,
|
|
3115
3260
|
url: `${apiUrl}${url}`,
|
|
3116
3261
|
params: query,
|
|
3117
3262
|
data: body == null ? void 0 : body.body,
|
|
3118
3263
|
headers: {
|
|
3119
|
-
|
|
3264
|
+
[authHeader]: this.client.token,
|
|
3120
3265
|
"User-Agent": `RevBot.js/${version}`
|
|
3121
3266
|
}
|
|
3122
3267
|
};
|
|
@@ -3206,6 +3351,7 @@ var CDNClient = class {
|
|
|
3206
3351
|
return __async(this, null, function* () {
|
|
3207
3352
|
try {
|
|
3208
3353
|
if (!this.client.token) throw new Error("Token is required");
|
|
3354
|
+
const authHeader = this.client.bot ? "X-Bot-Token" : "X-Session-Token";
|
|
3209
3355
|
const config = {
|
|
3210
3356
|
method,
|
|
3211
3357
|
url: `${cdnUrl}${url}`,
|
|
@@ -3213,7 +3359,7 @@ var CDNClient = class {
|
|
|
3213
3359
|
data,
|
|
3214
3360
|
maxBodyLength: Infinity,
|
|
3215
3361
|
headers: __spreadValues({
|
|
3216
|
-
|
|
3362
|
+
[authHeader]: this.client.token,
|
|
3217
3363
|
"Content-Type": "multipart/form-data",
|
|
3218
3364
|
"User-Agent": `RevBot.js/${version}`
|
|
3219
3365
|
}, data.getHeaders())
|
|
@@ -3249,12 +3395,14 @@ var BaseClient = class extends import_node_events.EventEmitter {
|
|
|
3249
3395
|
* @param {clientOptions} [options={}] - The options for configuring the client.
|
|
3250
3396
|
*/
|
|
3251
3397
|
constructor(options = {}) {
|
|
3398
|
+
var _a;
|
|
3252
3399
|
super();
|
|
3253
3400
|
/** The authentication token for the client. */
|
|
3254
3401
|
__privateAdd(this, _token, null);
|
|
3255
3402
|
/** Whether the client is a bot. */
|
|
3256
3403
|
this.bot = true;
|
|
3257
3404
|
this.options = __spreadValues({}, options);
|
|
3405
|
+
this.bot = (_a = this.options.isBot) != null ? _a : true;
|
|
3258
3406
|
this.api = new RestClient(this);
|
|
3259
3407
|
this.cdn = new CDNClient(this);
|
|
3260
3408
|
}
|
|
@@ -4241,6 +4389,7 @@ var client2 = class extends BaseClient {
|
|
|
4241
4389
|
DMChannel,
|
|
4242
4390
|
Emoji,
|
|
4243
4391
|
Events,
|
|
4392
|
+
FullPermissions,
|
|
4244
4393
|
GroupChannel,
|
|
4245
4394
|
Invite,
|
|
4246
4395
|
Mentions,
|
package/dist/index.mjs
CHANGED
|
@@ -8,6 +8,7 @@ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.
|
|
|
8
8
|
var __typeError = (msg) => {
|
|
9
9
|
throw TypeError(msg);
|
|
10
10
|
};
|
|
11
|
+
var __pow = Math.pow;
|
|
11
12
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
13
|
var __spreadValues = (a, b) => {
|
|
13
14
|
for (var prop in b || (b = {}))
|
|
@@ -124,6 +125,11 @@ var _BitField = class _BitField {
|
|
|
124
125
|
this.bitfield = DEFAULT_BIT;
|
|
125
126
|
this.bitfield = this.self.resolve(bits);
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Resolves a bitfield or an array of bitfields into a single number.
|
|
130
|
+
* @param bit The bitfield or array of bitfields to resolve.
|
|
131
|
+
* @returns The resolved bitfield as a number.
|
|
132
|
+
*/
|
|
127
133
|
static resolve(bit) {
|
|
128
134
|
if (bit instanceof _BitField) return bit.bitfield;
|
|
129
135
|
if (typeof bit === "number" && bit >= DEFAULT_BIT) return bit;
|
|
@@ -133,17 +139,33 @@ var _BitField = class _BitField {
|
|
|
133
139
|
if (typeof this.FLAGS[bit] !== "undefined") return this.FLAGS[bit];
|
|
134
140
|
throw new Error("BITFIELD_INVALID");
|
|
135
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Returns the class that this instance belongs to.
|
|
144
|
+
* @returns The class of the bitfield.
|
|
145
|
+
*/
|
|
136
146
|
get self() {
|
|
137
147
|
return this.constructor;
|
|
138
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Checks if any of the bits in the bitfield are set.
|
|
151
|
+
* @param bit The bitfield or array of bitfields to check.
|
|
152
|
+
* @returns True if any bits are set, false otherwise.
|
|
153
|
+
*/
|
|
139
154
|
any(bit) {
|
|
140
155
|
bit = this.self.resolve(bit);
|
|
141
156
|
return (this.bitfield & bit) !== DEFAULT_BIT;
|
|
142
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* checks if a specific permission is set.
|
|
160
|
+
*/
|
|
143
161
|
has(bit) {
|
|
144
162
|
bit = this.self.resolve(bit);
|
|
145
163
|
return (this.bitfield & bit) === bit;
|
|
146
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Returns an array of all the Permissions that are set in the bitfield.
|
|
167
|
+
* @returns An array of flag names.
|
|
168
|
+
*/
|
|
147
169
|
toArray() {
|
|
148
170
|
return Object.keys(this.self.FLAGS).filter((bit) => this.has(bit));
|
|
149
171
|
}
|
|
@@ -175,6 +197,10 @@ var _BitField = class _BitField {
|
|
|
175
197
|
valueOf() {
|
|
176
198
|
return this.bitfield;
|
|
177
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
*
|
|
202
|
+
* @returns A record of all flags and their boolean values indicating whether they are set.
|
|
203
|
+
*/
|
|
178
204
|
serialize() {
|
|
179
205
|
const serialized = {};
|
|
180
206
|
for (const [flag, bit] of Object.entries(this.self.FLAGS)) {
|
|
@@ -405,14 +431,14 @@ var ChannelPermissions = class extends BitField {
|
|
|
405
431
|
}
|
|
406
432
|
};
|
|
407
433
|
ChannelPermissions.FLAGS = {
|
|
408
|
-
VIEW_CHANNEL: 1
|
|
409
|
-
SEND_MESSAGE: 1
|
|
410
|
-
MANAGE_MESSAGE: 1
|
|
411
|
-
MANAGE_CHANNEL: 1
|
|
412
|
-
VOICE_CALL: 1
|
|
413
|
-
INVITE_OTHERS: 1
|
|
414
|
-
EMBED_LINKS: 1
|
|
415
|
-
UPLOAD_FILES: 1
|
|
434
|
+
VIEW_CHANNEL: __pow(1, 0),
|
|
435
|
+
SEND_MESSAGE: __pow(1, 22),
|
|
436
|
+
MANAGE_MESSAGE: __pow(1, 2),
|
|
437
|
+
MANAGE_CHANNEL: __pow(1, 3),
|
|
438
|
+
VOICE_CALL: __pow(1, 4),
|
|
439
|
+
INVITE_OTHERS: __pow(1, 5),
|
|
440
|
+
EMBED_LINKS: __pow(1, 6),
|
|
441
|
+
UPLOAD_FILES: __pow(1, 7)
|
|
416
442
|
};
|
|
417
443
|
var UserPermissions = class extends BitField {
|
|
418
444
|
constructor(bits) {
|
|
@@ -423,10 +449,10 @@ var UserPermissions = class extends BitField {
|
|
|
423
449
|
}
|
|
424
450
|
};
|
|
425
451
|
UserPermissions.FLAGS = {
|
|
426
|
-
ACCESS: 1
|
|
427
|
-
VIEW_PROFILE: 1
|
|
428
|
-
SEND_MESSAGES: 1
|
|
429
|
-
INVITE: 1
|
|
452
|
+
ACCESS: __pow(1, 0),
|
|
453
|
+
VIEW_PROFILE: __pow(1, 1),
|
|
454
|
+
SEND_MESSAGES: __pow(1, 2),
|
|
455
|
+
INVITE: __pow(1, 3)
|
|
430
456
|
};
|
|
431
457
|
var ServerPermissions = class extends BitField {
|
|
432
458
|
constructor(bits) {
|
|
@@ -437,16 +463,96 @@ var ServerPermissions = class extends BitField {
|
|
|
437
463
|
}
|
|
438
464
|
};
|
|
439
465
|
ServerPermissions.FLAGS = {
|
|
440
|
-
VIEW_SERVER: 1
|
|
441
|
-
MANAGE_ROLES: 1
|
|
442
|
-
MANAGE_CHANNELS: 1
|
|
443
|
-
MANAGE_SERVER: 1
|
|
444
|
-
KICK_MEMBERS: 1
|
|
445
|
-
BAN_MEMBERS: 1
|
|
446
|
-
CHANGE_NICKNAME: 1
|
|
447
|
-
MANAGE_NICKNAMES: 1
|
|
448
|
-
CHANGE_AVATAR: 1
|
|
449
|
-
REMOVE_AVATARS: 1
|
|
466
|
+
VIEW_SERVER: __pow(1, 0),
|
|
467
|
+
MANAGE_ROLES: __pow(1, 1),
|
|
468
|
+
MANAGE_CHANNELS: __pow(1, 2),
|
|
469
|
+
MANAGE_SERVER: __pow(1, 3),
|
|
470
|
+
KICK_MEMBERS: __pow(1, 4),
|
|
471
|
+
BAN_MEMBERS: __pow(1, 5),
|
|
472
|
+
CHANGE_NICKNAME: __pow(1, 12),
|
|
473
|
+
MANAGE_NICKNAMES: __pow(1, 13),
|
|
474
|
+
CHANGE_AVATAR: __pow(1, 14),
|
|
475
|
+
REMOVE_AVATARS: __pow(1, 15)
|
|
476
|
+
};
|
|
477
|
+
var FullPermissions = class extends BitField {
|
|
478
|
+
constructor(bits) {
|
|
479
|
+
super(bits);
|
|
480
|
+
}
|
|
481
|
+
static resolve(bit) {
|
|
482
|
+
return super.resolve(bit);
|
|
483
|
+
}
|
|
484
|
+
};
|
|
485
|
+
FullPermissions.FLAGS = {
|
|
486
|
+
// * Generic permissions
|
|
487
|
+
/// Manage the channel or channels on the server
|
|
488
|
+
ManageChannel: __pow(2, 0),
|
|
489
|
+
/// Manage the server
|
|
490
|
+
ManageServer: __pow(2, 1),
|
|
491
|
+
/// Manage permissions on servers or channels
|
|
492
|
+
ManagePermissions: __pow(2, 2),
|
|
493
|
+
/// Manage roles on server
|
|
494
|
+
ManageRole: __pow(2, 3),
|
|
495
|
+
/// Manage server customisation (includes emoji)
|
|
496
|
+
ManageCustomisation: __pow(2, 4),
|
|
497
|
+
// * Member permissions
|
|
498
|
+
/// Kick other members below their ranking
|
|
499
|
+
KickMembers: __pow(2, 6),
|
|
500
|
+
/// Ban other members below their ranking
|
|
501
|
+
BanMembers: __pow(2, 7),
|
|
502
|
+
/// Timeout other members below their ranking
|
|
503
|
+
TimeoutMembers: __pow(2, 8),
|
|
504
|
+
/// Assign roles to members below their ranking
|
|
505
|
+
AssignRoles: __pow(2, 9),
|
|
506
|
+
/// Change own nickname
|
|
507
|
+
ChangeNickname: __pow(2, 10),
|
|
508
|
+
/// Change or remove other's nicknames below their ranking
|
|
509
|
+
ManageNicknames: __pow(2, 11),
|
|
510
|
+
/// Change own avatar
|
|
511
|
+
ChangeAvatar: __pow(2, 12),
|
|
512
|
+
/// Remove other's avatars below their ranking
|
|
513
|
+
RemoveAvatars: __pow(2, 13),
|
|
514
|
+
// * Channel permissions
|
|
515
|
+
/// View a channel
|
|
516
|
+
ViewChannel: __pow(2, 20),
|
|
517
|
+
/// Read a channel's past message history
|
|
518
|
+
ReadMessageHistory: __pow(2, 21),
|
|
519
|
+
/// Send a message in a channel
|
|
520
|
+
SendMessage: __pow(2, 22),
|
|
521
|
+
/// Delete messages in a channel
|
|
522
|
+
ManageMessages: __pow(2, 23),
|
|
523
|
+
/// Manage webhook entries on a channel
|
|
524
|
+
ManageWebhooks: __pow(2, 24),
|
|
525
|
+
/// Create invites to this channel
|
|
526
|
+
InviteOthers: __pow(2, 25),
|
|
527
|
+
/// Send embedded content in this channel
|
|
528
|
+
SendEmbeds: __pow(2, 26),
|
|
529
|
+
/// Send attachments and media in this channel
|
|
530
|
+
UploadFiles: __pow(2, 27),
|
|
531
|
+
/// Masquerade messages using custom nickname and avatar
|
|
532
|
+
Masquerade: __pow(2, 28),
|
|
533
|
+
/// React to messages with emoji
|
|
534
|
+
React: __pow(2, 29),
|
|
535
|
+
// * Voice permissions
|
|
536
|
+
/// Connect to a voice channel
|
|
537
|
+
Connect: __pow(2, 30),
|
|
538
|
+
/// Speak in a voice call
|
|
539
|
+
Speak: __pow(2, 31),
|
|
540
|
+
/// Share video in a voice call
|
|
541
|
+
Video: __pow(2, 32),
|
|
542
|
+
/// Mute other members with lower ranking in a voice call
|
|
543
|
+
MuteMembers: __pow(2, 33),
|
|
544
|
+
/// Deafen other members with lower ranking in a voice call
|
|
545
|
+
DeafenMembers: __pow(2, 34),
|
|
546
|
+
/// Move members between voice channels
|
|
547
|
+
MoveMembers: __pow(2, 35),
|
|
548
|
+
// * Mention permissions
|
|
549
|
+
/// Mention @everyone or @online
|
|
550
|
+
MentionEveryone: __pow(2, 37),
|
|
551
|
+
/// Mention a role
|
|
552
|
+
MentionRoles: __pow(2, 38),
|
|
553
|
+
// * Grant all permissions
|
|
554
|
+
/// Safely grant all permissions
|
|
555
|
+
GrantAll: 4503599627370495
|
|
450
556
|
};
|
|
451
557
|
var DEFAULT_PERMISSION_DM = new ChannelPermissions([
|
|
452
558
|
"VIEW_CHANNEL",
|
|
@@ -993,9 +1099,7 @@ var Server2 = class extends Base {
|
|
|
993
1099
|
}
|
|
994
1100
|
}
|
|
995
1101
|
if (typeof data.default_permissions === "number") {
|
|
996
|
-
this.permissions = new
|
|
997
|
-
data.default_permissions
|
|
998
|
-
).freeze();
|
|
1102
|
+
this.permissions = new FullPermissions(data.default_permissions).freeze();
|
|
999
1103
|
}
|
|
1000
1104
|
if (typeof data.analytics === "boolean") this.analytics = data.analytics;
|
|
1001
1105
|
if (typeof data.discoverable === "boolean") {
|
|
@@ -1098,8 +1202,8 @@ var Role = class extends Base {
|
|
|
1098
1202
|
if (data.permissions) {
|
|
1099
1203
|
const { a, d } = data.permissions;
|
|
1100
1204
|
this.overwrite = {
|
|
1101
|
-
allow: new
|
|
1102
|
-
deny: new
|
|
1205
|
+
allow: new FullPermissions(a),
|
|
1206
|
+
deny: new FullPermissions(d)
|
|
1103
1207
|
};
|
|
1104
1208
|
}
|
|
1105
1209
|
for (const field of clear) {
|
|
@@ -1145,6 +1249,9 @@ var Role = class extends Base {
|
|
|
1145
1249
|
delete() {
|
|
1146
1250
|
return this.server.roles.delete(this);
|
|
1147
1251
|
}
|
|
1252
|
+
edit(data) {
|
|
1253
|
+
return this.server.roles.edit(this, data);
|
|
1254
|
+
}
|
|
1148
1255
|
/**
|
|
1149
1256
|
* Converts the role to a string representation.
|
|
1150
1257
|
*
|
|
@@ -1901,8 +2008,8 @@ var ServerChannel = class extends Channel {
|
|
|
1901
2008
|
this.overwrites.clear();
|
|
1902
2009
|
for (const [id, { a, d }] of Object.entries(data.role_permissions)) {
|
|
1903
2010
|
this.overwrites.set(id, {
|
|
1904
|
-
allow: new
|
|
1905
|
-
deny: new
|
|
2011
|
+
allow: new FullPermissions(a),
|
|
2012
|
+
deny: new FullPermissions(d)
|
|
1906
2013
|
});
|
|
1907
2014
|
}
|
|
1908
2015
|
}
|
|
@@ -2820,6 +2927,42 @@ var RoleManager = class extends BaseManager {
|
|
|
2820
2927
|
yield this.client.api.delete(`/servers/${this.server.id}/roles/${id}`);
|
|
2821
2928
|
});
|
|
2822
2929
|
}
|
|
2930
|
+
/**
|
|
2931
|
+
*
|
|
2932
|
+
* @param role the role to edit
|
|
2933
|
+
* @param data data to edit the role with
|
|
2934
|
+
* @param data.permissions The permissions to set for the role, in the format { a: allow, d: deny }
|
|
2935
|
+
* @param data.name The name of the role
|
|
2936
|
+
* @param data.colour The color of the role, or `null` if no color is set
|
|
2937
|
+
* @param data.hoist Whether the role is displayed separately in the member list
|
|
2938
|
+
* @param data.rank The rank of the role, used for ordering
|
|
2939
|
+
* @param data.remove Fields to remove from the role
|
|
2940
|
+
* @returns Role
|
|
2941
|
+
* @throws {TypeError} If the role ID is invalid
|
|
2942
|
+
*/
|
|
2943
|
+
edit(role, data) {
|
|
2944
|
+
return __async(this, null, function* () {
|
|
2945
|
+
var _a, _b;
|
|
2946
|
+
const id = this.resolveId(role);
|
|
2947
|
+
if (!id) throw new TypeError("INVALID_TYPE");
|
|
2948
|
+
if (data.permissions) {
|
|
2949
|
+
const permissions = {
|
|
2950
|
+
allow: new FullPermissions(((_a = data.permissions) == null ? void 0 : _a.a) || []).bitfield,
|
|
2951
|
+
deny: new FullPermissions(((_b = data.permissions) == null ? void 0 : _b.d) || []).bitfield
|
|
2952
|
+
};
|
|
2953
|
+
yield this.client.api.put(
|
|
2954
|
+
`/servers/${this.server.id}/permissions/${id}`,
|
|
2955
|
+
{ body: { permissions } }
|
|
2956
|
+
);
|
|
2957
|
+
}
|
|
2958
|
+
delete data.permissions;
|
|
2959
|
+
const updatedRole = yield this.client.api.patch(
|
|
2960
|
+
`/servers/${this.server.id}/roles/${id}`,
|
|
2961
|
+
{ body: data }
|
|
2962
|
+
);
|
|
2963
|
+
return this._add(Object.assign(updatedRole, { id }));
|
|
2964
|
+
});
|
|
2965
|
+
}
|
|
2823
2966
|
};
|
|
2824
2967
|
|
|
2825
2968
|
// src/managers/serverChannelManager.ts
|
|
@@ -3018,7 +3161,7 @@ import { EventEmitter } from "node:events";
|
|
|
3018
3161
|
import axios3 from "axios";
|
|
3019
3162
|
|
|
3020
3163
|
// package.json
|
|
3021
|
-
var version = "0.0.
|
|
3164
|
+
var version = "0.0.8";
|
|
3022
3165
|
|
|
3023
3166
|
// src/rest/restClient.ts
|
|
3024
3167
|
var RestClient = class {
|
|
@@ -3037,13 +3180,14 @@ var RestClient = class {
|
|
|
3037
3180
|
return __async(this, null, function* () {
|
|
3038
3181
|
try {
|
|
3039
3182
|
if (!this.client.token) throw new Error("Token is required");
|
|
3183
|
+
const authHeader = this.client.bot ? "X-Bot-Token" : "X-Session-Token";
|
|
3040
3184
|
const config = {
|
|
3041
3185
|
method,
|
|
3042
3186
|
url: `${apiUrl}${url}`,
|
|
3043
3187
|
params: query,
|
|
3044
3188
|
data: body == null ? void 0 : body.body,
|
|
3045
3189
|
headers: {
|
|
3046
|
-
|
|
3190
|
+
[authHeader]: this.client.token,
|
|
3047
3191
|
"User-Agent": `RevBot.js/${version}`
|
|
3048
3192
|
}
|
|
3049
3193
|
};
|
|
@@ -3133,6 +3277,7 @@ var CDNClient = class {
|
|
|
3133
3277
|
return __async(this, null, function* () {
|
|
3134
3278
|
try {
|
|
3135
3279
|
if (!this.client.token) throw new Error("Token is required");
|
|
3280
|
+
const authHeader = this.client.bot ? "X-Bot-Token" : "X-Session-Token";
|
|
3136
3281
|
const config = {
|
|
3137
3282
|
method,
|
|
3138
3283
|
url: `${cdnUrl}${url}`,
|
|
@@ -3140,7 +3285,7 @@ var CDNClient = class {
|
|
|
3140
3285
|
data,
|
|
3141
3286
|
maxBodyLength: Infinity,
|
|
3142
3287
|
headers: __spreadValues({
|
|
3143
|
-
|
|
3288
|
+
[authHeader]: this.client.token,
|
|
3144
3289
|
"Content-Type": "multipart/form-data",
|
|
3145
3290
|
"User-Agent": `RevBot.js/${version}`
|
|
3146
3291
|
}, data.getHeaders())
|
|
@@ -3176,12 +3321,14 @@ var BaseClient = class extends EventEmitter {
|
|
|
3176
3321
|
* @param {clientOptions} [options={}] - The options for configuring the client.
|
|
3177
3322
|
*/
|
|
3178
3323
|
constructor(options = {}) {
|
|
3324
|
+
var _a;
|
|
3179
3325
|
super();
|
|
3180
3326
|
/** The authentication token for the client. */
|
|
3181
3327
|
__privateAdd(this, _token, null);
|
|
3182
3328
|
/** Whether the client is a bot. */
|
|
3183
3329
|
this.bot = true;
|
|
3184
3330
|
this.options = __spreadValues({}, options);
|
|
3331
|
+
this.bot = (_a = this.options.isBot) != null ? _a : true;
|
|
3185
3332
|
this.api = new RestClient(this);
|
|
3186
3333
|
this.cdn = new CDNClient(this);
|
|
3187
3334
|
}
|
|
@@ -4167,6 +4314,7 @@ export {
|
|
|
4167
4314
|
DMChannel3 as DMChannel,
|
|
4168
4315
|
Emoji2 as Emoji,
|
|
4169
4316
|
Events,
|
|
4317
|
+
FullPermissions,
|
|
4170
4318
|
GroupChannel2 as GroupChannel,
|
|
4171
4319
|
Invite,
|
|
4172
4320
|
Mentions,
|
package/package.json
CHANGED