revbot.js 0.0.7 → 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 +134 -4
- package/dist/index.d.ts +134 -4
- package/dist/index.js +175 -30
- package/dist/index.mjs +174 -30
- 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
|
}
|
|
@@ -465,6 +493,44 @@ declare class ServerPermissions extends BitField {
|
|
|
465
493
|
constructor(bits?: ServerPermissionsResolvable);
|
|
466
494
|
static resolve(bit: ServerPermissionsResolvable): number;
|
|
467
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
|
+
}
|
|
468
534
|
declare const DEFAULT_PERMISSION_DM: Readonly<ChannelPermissions>;
|
|
469
535
|
|
|
470
536
|
type BadgeString = keyof typeof Badges.FLAGS;
|
|
@@ -840,7 +906,7 @@ declare class Server extends Base {
|
|
|
840
906
|
/** Whether the server is marked as NSFW (Not Safe For Work). */
|
|
841
907
|
nsfw: boolean;
|
|
842
908
|
/** The default permissions for the server. */
|
|
843
|
-
permissions:
|
|
909
|
+
permissions: FullPermissions;
|
|
844
910
|
/** The categories in the server. */
|
|
845
911
|
categories: Map<string, Category>;
|
|
846
912
|
/** the emojies associated with the server */
|
|
@@ -893,6 +959,55 @@ declare class Server extends Base {
|
|
|
893
959
|
toString(): string;
|
|
894
960
|
}
|
|
895
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
|
+
|
|
896
1011
|
/**
|
|
897
1012
|
* Represents a role in a server.
|
|
898
1013
|
*
|
|
@@ -960,6 +1075,7 @@ declare class Role extends Base {
|
|
|
960
1075
|
* ```
|
|
961
1076
|
*/
|
|
962
1077
|
delete(): Promise<void>;
|
|
1078
|
+
edit(data: editableRole): Promise<Role>;
|
|
963
1079
|
/**
|
|
964
1080
|
* Converts the role to a string representation.
|
|
965
1081
|
*
|
|
@@ -1532,8 +1648,8 @@ type APIServerChannel$1 = Extract<Channel$1, {
|
|
|
1532
1648
|
channel_type: "TextChannel" | "VoiceChannel";
|
|
1533
1649
|
}>;
|
|
1534
1650
|
interface Overwrite {
|
|
1535
|
-
allow:
|
|
1536
|
-
deny:
|
|
1651
|
+
allow: FullPermissions;
|
|
1652
|
+
deny: FullPermissions;
|
|
1537
1653
|
}
|
|
1538
1654
|
/**
|
|
1539
1655
|
* Represents a server channel, which can be a text or voice channel.
|
|
@@ -2397,6 +2513,20 @@ declare class RoleManager extends BaseManager<Role, Role$1 & {
|
|
|
2397
2513
|
* @returns A promise that resolves when the role is deleted
|
|
2398
2514
|
*/
|
|
2399
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>;
|
|
2400
2530
|
}
|
|
2401
2531
|
|
|
2402
2532
|
type APIServerChannel = Extract<Channel$1, {
|
|
@@ -2487,4 +2617,4 @@ declare class ServerMemberManager extends BaseManager<ServerMember, Member> {
|
|
|
2487
2617
|
resolveId(member: ServerMemberResolvable): string | null;
|
|
2488
2618
|
}
|
|
2489
2619
|
|
|
2490
|
-
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
|
}
|
|
@@ -465,6 +493,44 @@ declare class ServerPermissions extends BitField {
|
|
|
465
493
|
constructor(bits?: ServerPermissionsResolvable);
|
|
466
494
|
static resolve(bit: ServerPermissionsResolvable): number;
|
|
467
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
|
+
}
|
|
468
534
|
declare const DEFAULT_PERMISSION_DM: Readonly<ChannelPermissions>;
|
|
469
535
|
|
|
470
536
|
type BadgeString = keyof typeof Badges.FLAGS;
|
|
@@ -840,7 +906,7 @@ declare class Server extends Base {
|
|
|
840
906
|
/** Whether the server is marked as NSFW (Not Safe For Work). */
|
|
841
907
|
nsfw: boolean;
|
|
842
908
|
/** The default permissions for the server. */
|
|
843
|
-
permissions:
|
|
909
|
+
permissions: FullPermissions;
|
|
844
910
|
/** The categories in the server. */
|
|
845
911
|
categories: Map<string, Category>;
|
|
846
912
|
/** the emojies associated with the server */
|
|
@@ -893,6 +959,55 @@ declare class Server extends Base {
|
|
|
893
959
|
toString(): string;
|
|
894
960
|
}
|
|
895
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
|
+
|
|
896
1011
|
/**
|
|
897
1012
|
* Represents a role in a server.
|
|
898
1013
|
*
|
|
@@ -960,6 +1075,7 @@ declare class Role extends Base {
|
|
|
960
1075
|
* ```
|
|
961
1076
|
*/
|
|
962
1077
|
delete(): Promise<void>;
|
|
1078
|
+
edit(data: editableRole): Promise<Role>;
|
|
963
1079
|
/**
|
|
964
1080
|
* Converts the role to a string representation.
|
|
965
1081
|
*
|
|
@@ -1532,8 +1648,8 @@ type APIServerChannel$1 = Extract<Channel$1, {
|
|
|
1532
1648
|
channel_type: "TextChannel" | "VoiceChannel";
|
|
1533
1649
|
}>;
|
|
1534
1650
|
interface Overwrite {
|
|
1535
|
-
allow:
|
|
1536
|
-
deny:
|
|
1651
|
+
allow: FullPermissions;
|
|
1652
|
+
deny: FullPermissions;
|
|
1537
1653
|
}
|
|
1538
1654
|
/**
|
|
1539
1655
|
* Represents a server channel, which can be a text or voice channel.
|
|
@@ -2397,6 +2513,20 @@ declare class RoleManager extends BaseManager<Role, Role$1 & {
|
|
|
2397
2513
|
* @returns A promise that resolves when the role is deleted
|
|
2398
2514
|
*/
|
|
2399
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>;
|
|
2400
2530
|
}
|
|
2401
2531
|
|
|
2402
2532
|
type APIServerChannel = Extract<Channel$1, {
|
|
@@ -2487,4 +2617,4 @@ declare class ServerMemberManager extends BaseManager<ServerMember, Member> {
|
|
|
2487
2617
|
resolveId(member: ServerMemberResolvable): string | null;
|
|
2488
2618
|
}
|
|
2489
2619
|
|
|
2490
|
-
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 {
|
|
@@ -4245,6 +4389,7 @@ var client2 = class extends BaseClient {
|
|
|
4245
4389
|
DMChannel,
|
|
4246
4390
|
Emoji,
|
|
4247
4391
|
Events,
|
|
4392
|
+
FullPermissions,
|
|
4248
4393
|
GroupChannel,
|
|
4249
4394
|
Invite,
|
|
4250
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 {
|
|
@@ -4171,6 +4314,7 @@ export {
|
|
|
4171
4314
|
DMChannel3 as DMChannel,
|
|
4172
4315
|
Emoji2 as Emoji,
|
|
4173
4316
|
Events,
|
|
4317
|
+
FullPermissions,
|
|
4174
4318
|
GroupChannel2 as GroupChannel,
|
|
4175
4319
|
Invite,
|
|
4176
4320
|
Mentions,
|
package/package.json
CHANGED