@jubbio/core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/Client.d.ts +147 -0
- package/dist/Client.js +471 -0
- package/dist/builders/ActionRowBuilder.d.ts +53 -0
- package/dist/builders/ActionRowBuilder.js +68 -0
- package/dist/builders/ButtonBuilder.d.ts +77 -0
- package/dist/builders/ButtonBuilder.js +96 -0
- package/dist/builders/EmbedBuilder.d.ts +157 -0
- package/dist/builders/EmbedBuilder.js +199 -0
- package/dist/builders/ModalBuilder.d.ts +122 -0
- package/dist/builders/ModalBuilder.js +162 -0
- package/dist/builders/SelectMenuBuilder.d.ts +123 -0
- package/dist/builders/SelectMenuBuilder.js +165 -0
- package/dist/builders/SlashCommandBuilder.d.ts +197 -0
- package/dist/builders/SlashCommandBuilder.js +324 -0
- package/dist/builders/index.d.ts +9 -0
- package/dist/builders/index.js +26 -0
- package/dist/enums.d.ts +196 -0
- package/dist/enums.js +216 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +128 -0
- package/dist/managers/BaseManager.d.ts +69 -0
- package/dist/managers/BaseManager.js +106 -0
- package/dist/managers/ChannelManager.d.ts +98 -0
- package/dist/managers/ChannelManager.js +209 -0
- package/dist/managers/GuildMemberManager.d.ts +74 -0
- package/dist/managers/GuildMemberManager.js +156 -0
- package/dist/managers/RoleManager.d.ts +84 -0
- package/dist/managers/RoleManager.js +207 -0
- package/dist/managers/index.d.ts +7 -0
- package/dist/managers/index.js +24 -0
- package/dist/rest/REST.d.ts +483 -0
- package/dist/rest/REST.js +805 -0
- package/dist/rest/index.d.ts +1 -0
- package/dist/rest/index.js +18 -0
- package/dist/sharding/ShardingManager.d.ts +179 -0
- package/dist/sharding/ShardingManager.js +375 -0
- package/dist/sharding/index.d.ts +4 -0
- package/dist/sharding/index.js +21 -0
- package/dist/structures/Channel.d.ts +120 -0
- package/dist/structures/Channel.js +224 -0
- package/dist/structures/Collection.d.ts +53 -0
- package/dist/structures/Collection.js +115 -0
- package/dist/structures/Guild.d.ts +59 -0
- package/dist/structures/Guild.js +90 -0
- package/dist/structures/GuildMember.d.ts +130 -0
- package/dist/structures/GuildMember.js +208 -0
- package/dist/structures/Interaction.d.ts +224 -0
- package/dist/structures/Interaction.js +404 -0
- package/dist/structures/Message.d.ts +93 -0
- package/dist/structures/Message.js +145 -0
- package/dist/structures/User.d.ts +37 -0
- package/dist/structures/User.js +65 -0
- package/dist/structures/index.d.ts +7 -0
- package/dist/structures/index.js +25 -0
- package/dist/structures.d.ts +1 -0
- package/dist/structures.js +19 -0
- package/dist/types.d.ts +255 -0
- package/dist/types.js +3 -0
- package/dist/utils/BitField.d.ts +66 -0
- package/dist/utils/BitField.js +138 -0
- package/dist/utils/Collection.d.ts +116 -0
- package/dist/utils/Collection.js +265 -0
- package/dist/utils/Collector.d.ts +152 -0
- package/dist/utils/Collector.js +314 -0
- package/dist/utils/DataResolver.d.ts +61 -0
- package/dist/utils/DataResolver.js +146 -0
- package/dist/utils/Formatters.d.ts +145 -0
- package/dist/utils/Formatters.js +213 -0
- package/dist/utils/IntentsBitField.d.ts +85 -0
- package/dist/utils/IntentsBitField.js +99 -0
- package/dist/utils/Partials.d.ts +105 -0
- package/dist/utils/Partials.js +149 -0
- package/dist/utils/PermissionsBitField.d.ts +118 -0
- package/dist/utils/PermissionsBitField.js +145 -0
- package/dist/utils/SnowflakeUtil.d.ts +63 -0
- package/dist/utils/SnowflakeUtil.js +93 -0
- package/dist/utils/Sweepers.d.ts +127 -0
- package/dist/utils/Sweepers.js +270 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +30 -0
- package/package.json +37 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Intents BitField for calculating gateway intents
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.IntentsBitField = exports.PrivilegedIntents = exports.IntentsAll = exports.GatewayIntentBits = void 0;
|
|
7
|
+
exports.calculateIntents = calculateIntents;
|
|
8
|
+
exports.resolveIntents = resolveIntents;
|
|
9
|
+
const BitField_1 = require("./BitField");
|
|
10
|
+
/**
|
|
11
|
+
* Gateway Intent Bits
|
|
12
|
+
*/
|
|
13
|
+
exports.GatewayIntentBits = {
|
|
14
|
+
Guilds: 1 << 0,
|
|
15
|
+
GuildMembers: 1 << 1,
|
|
16
|
+
GuildModeration: 1 << 2,
|
|
17
|
+
GuildEmojisAndStickers: 1 << 3,
|
|
18
|
+
GuildIntegrations: 1 << 4,
|
|
19
|
+
GuildWebhooks: 1 << 5,
|
|
20
|
+
GuildInvites: 1 << 6,
|
|
21
|
+
GuildVoiceStates: 1 << 7,
|
|
22
|
+
GuildPresences: 1 << 8,
|
|
23
|
+
GuildMessages: 1 << 9,
|
|
24
|
+
GuildMessageReactions: 1 << 10,
|
|
25
|
+
GuildMessageTyping: 1 << 11,
|
|
26
|
+
DirectMessages: 1 << 12,
|
|
27
|
+
DirectMessageReactions: 1 << 13,
|
|
28
|
+
DirectMessageTyping: 1 << 14,
|
|
29
|
+
MessageContent: 1 << 15,
|
|
30
|
+
GuildScheduledEvents: 1 << 16,
|
|
31
|
+
AutoModerationConfiguration: 1 << 20,
|
|
32
|
+
AutoModerationExecution: 1 << 21,
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* All non-privileged intents
|
|
36
|
+
*/
|
|
37
|
+
exports.IntentsAll = Object.values(exports.GatewayIntentBits).reduce((all, i) => all | i, 0);
|
|
38
|
+
/**
|
|
39
|
+
* Privileged intents that require approval
|
|
40
|
+
*/
|
|
41
|
+
exports.PrivilegedIntents = exports.GatewayIntentBits.GuildMembers |
|
|
42
|
+
exports.GatewayIntentBits.GuildPresences |
|
|
43
|
+
exports.GatewayIntentBits.MessageContent;
|
|
44
|
+
/**
|
|
45
|
+
* Data structure for gateway intents
|
|
46
|
+
*/
|
|
47
|
+
class IntentsBitField extends BitField_1.BitField {
|
|
48
|
+
static Flags = exports.GatewayIntentBits;
|
|
49
|
+
static DefaultBit = 0;
|
|
50
|
+
constructor(bits = 0) {
|
|
51
|
+
super(bits);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if any privileged intents are enabled
|
|
55
|
+
*/
|
|
56
|
+
hasPrivileged() {
|
|
57
|
+
return this.any(exports.PrivilegedIntents);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Get all privileged intents that are enabled
|
|
61
|
+
*/
|
|
62
|
+
getPrivileged() {
|
|
63
|
+
const privileged = [];
|
|
64
|
+
if (this.has(exports.GatewayIntentBits.GuildMembers))
|
|
65
|
+
privileged.push('GuildMembers');
|
|
66
|
+
if (this.has(exports.GatewayIntentBits.GuildPresences))
|
|
67
|
+
privileged.push('GuildPresences');
|
|
68
|
+
if (this.has(exports.GatewayIntentBits.MessageContent))
|
|
69
|
+
privileged.push('MessageContent');
|
|
70
|
+
return privileged;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.IntentsBitField = IntentsBitField;
|
|
74
|
+
/**
|
|
75
|
+
* Calculate intents from an array of intent names or values
|
|
76
|
+
*/
|
|
77
|
+
function calculateIntents(intents) {
|
|
78
|
+
return intents.reduce((acc, intent) => {
|
|
79
|
+
if (typeof intent === 'number')
|
|
80
|
+
return acc | intent;
|
|
81
|
+
if (intent in exports.GatewayIntentBits)
|
|
82
|
+
return acc | exports.GatewayIntentBits[intent];
|
|
83
|
+
return acc;
|
|
84
|
+
}, 0);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get all intent names from a bitfield value
|
|
88
|
+
*/
|
|
89
|
+
function resolveIntents(bits) {
|
|
90
|
+
const names = [];
|
|
91
|
+
for (const [name, value] of Object.entries(exports.GatewayIntentBits)) {
|
|
92
|
+
if ((bits & value) === value) {
|
|
93
|
+
names.push(name);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return names;
|
|
97
|
+
}
|
|
98
|
+
exports.default = IntentsBitField;
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZW50c0JpdEZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL0ludGVudHNCaXRGaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQWdGSCw0Q0FNQztBQUtELHdDQVFDO0FBakdELHlDQUEwRDtBQU8xRDs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQUc7SUFDL0IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ2QsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN2QixzQkFBc0IsRUFBRSxDQUFDLElBQUksQ0FBQztJQUM5QixpQkFBaUIsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN6QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckIsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3BCLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3hCLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN0QixhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckIscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDOUIsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFDM0IsY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFO0lBQ3ZCLHNCQUFzQixFQUFFLENBQUMsSUFBSSxFQUFFO0lBQy9CLG1CQUFtQixFQUFFLENBQUMsSUFBSSxFQUFFO0lBQzVCLGNBQWMsRUFBRSxDQUFDLElBQUksRUFBRTtJQUN2QixvQkFBb0IsRUFBRSxDQUFDLElBQUksRUFBRTtJQUM3QiwyQkFBMkIsRUFBRSxDQUFDLElBQUksRUFBRTtJQUNwQyx1QkFBdUIsRUFBRSxDQUFDLElBQUksRUFBRTtDQUN4QixDQUFDO0FBRVg7O0dBRUc7QUFDVSxRQUFBLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLHlCQUFpQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUUxRjs7R0FFRztBQUNVLFFBQUEsaUJBQWlCLEdBQzVCLHlCQUFpQixDQUFDLFlBQVk7SUFDOUIseUJBQWlCLENBQUMsY0FBYztJQUNoQyx5QkFBaUIsQ0FBQyxjQUFjLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsbUJBQW1DO0lBQ3RFLE1BQU0sQ0FBQyxLQUFLLEdBQUcseUJBQWlCLENBQUM7SUFDakMsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFdEIsWUFBWSxPQUFzRCxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsTUFBTSxVQUFVLEdBQXdCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsWUFBWSxDQUFDO1lBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5RSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQWlCLENBQUMsY0FBYyxDQUFDO1lBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xGLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyx5QkFBaUIsQ0FBQyxjQUFjLENBQUM7WUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbEYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7QUF4QkgsMENBeUJDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QztJQUN0RSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDNUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO1lBQUUsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3BELElBQUksTUFBTSxJQUFJLHlCQUFpQjtZQUFFLE9BQU8sR0FBRyxHQUFHLHlCQUFpQixDQUFDLE1BQXdDLENBQUMsQ0FBQztRQUMxRyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNSLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxJQUFZO0lBQ3pDLE1BQU0sS0FBSyxHQUF3QixFQUFFLENBQUM7SUFDdEMsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzlELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUF5QixDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxrQkFBZSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSW50ZW50cyBCaXRGaWVsZCBmb3IgY2FsY3VsYXRpbmcgZ2F0ZXdheSBpbnRlbnRzXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgQml0RmllbGQsIEJpdEZpZWxkUmVzb2x2YWJsZSB9IGZyb20gJy4vQml0RmllbGQnO1xyXG5cclxuLyoqXHJcbiAqIEludGVudCBmbGFnIG5hbWVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBJbnRlbnRGbGFnc1N0cmluZyA9IGtleW9mIHR5cGVvZiBJbnRlbnRzQml0RmllbGQuRmxhZ3M7XHJcblxyXG4vKipcclxuICogR2F0ZXdheSBJbnRlbnQgQml0c1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEdhdGV3YXlJbnRlbnRCaXRzID0ge1xyXG4gIEd1aWxkczogMSA8PCAwLFxyXG4gIEd1aWxkTWVtYmVyczogMSA8PCAxLFxyXG4gIEd1aWxkTW9kZXJhdGlvbjogMSA8PCAyLFxyXG4gIEd1aWxkRW1vamlzQW5kU3RpY2tlcnM6IDEgPDwgMyxcclxuICBHdWlsZEludGVncmF0aW9uczogMSA8PCA0LFxyXG4gIEd1aWxkV2ViaG9va3M6IDEgPDwgNSxcclxuICBHdWlsZEludml0ZXM6IDEgPDwgNixcclxuICBHdWlsZFZvaWNlU3RhdGVzOiAxIDw8IDcsXHJcbiAgR3VpbGRQcmVzZW5jZXM6IDEgPDwgOCxcclxuICBHdWlsZE1lc3NhZ2VzOiAxIDw8IDksXHJcbiAgR3VpbGRNZXNzYWdlUmVhY3Rpb25zOiAxIDw8IDEwLFxyXG4gIEd1aWxkTWVzc2FnZVR5cGluZzogMSA8PCAxMSxcclxuICBEaXJlY3RNZXNzYWdlczogMSA8PCAxMixcclxuICBEaXJlY3RNZXNzYWdlUmVhY3Rpb25zOiAxIDw8IDEzLFxyXG4gIERpcmVjdE1lc3NhZ2VUeXBpbmc6IDEgPDwgMTQsXHJcbiAgTWVzc2FnZUNvbnRlbnQ6IDEgPDwgMTUsXHJcbiAgR3VpbGRTY2hlZHVsZWRFdmVudHM6IDEgPDwgMTYsXHJcbiAgQXV0b01vZGVyYXRpb25Db25maWd1cmF0aW9uOiAxIDw8IDIwLFxyXG4gIEF1dG9Nb2RlcmF0aW9uRXhlY3V0aW9uOiAxIDw8IDIxLFxyXG59IGFzIGNvbnN0O1xyXG5cclxuLyoqXHJcbiAqIEFsbCBub24tcHJpdmlsZWdlZCBpbnRlbnRzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgSW50ZW50c0FsbCA9IE9iamVjdC52YWx1ZXMoR2F0ZXdheUludGVudEJpdHMpLnJlZHVjZSgoYWxsLCBpKSA9PiBhbGwgfCBpLCAwKTtcclxuXHJcbi8qKlxyXG4gKiBQcml2aWxlZ2VkIGludGVudHMgdGhhdCByZXF1aXJlIGFwcHJvdmFsXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUHJpdmlsZWdlZEludGVudHMgPSBcclxuICBHYXRld2F5SW50ZW50Qml0cy5HdWlsZE1lbWJlcnMgfCBcclxuICBHYXRld2F5SW50ZW50Qml0cy5HdWlsZFByZXNlbmNlcyB8IFxyXG4gIEdhdGV3YXlJbnRlbnRCaXRzLk1lc3NhZ2VDb250ZW50O1xyXG5cclxuLyoqXHJcbiAqIERhdGEgc3RydWN0dXJlIGZvciBnYXRld2F5IGludGVudHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbnRlbnRzQml0RmllbGQgZXh0ZW5kcyBCaXRGaWVsZDxJbnRlbnRGbGFnc1N0cmluZywgbnVtYmVyPiB7XHJcbiAgc3RhdGljIEZsYWdzID0gR2F0ZXdheUludGVudEJpdHM7XHJcbiAgc3RhdGljIERlZmF1bHRCaXQgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihiaXRzOiBCaXRGaWVsZFJlc29sdmFibGU8SW50ZW50RmxhZ3NTdHJpbmcsIG51bWJlcj4gPSAwKSB7XHJcbiAgICBzdXBlcihiaXRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGFueSBwcml2aWxlZ2VkIGludGVudHMgYXJlIGVuYWJsZWRcclxuICAgKi9cclxuICBoYXNQcml2aWxlZ2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYW55KFByaXZpbGVnZWRJbnRlbnRzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgcHJpdmlsZWdlZCBpbnRlbnRzIHRoYXQgYXJlIGVuYWJsZWRcclxuICAgKi9cclxuICBnZXRQcml2aWxlZ2VkKCk6IEludGVudEZsYWdzU3RyaW5nW10ge1xyXG4gICAgY29uc3QgcHJpdmlsZWdlZDogSW50ZW50RmxhZ3NTdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaGFzKEdhdGV3YXlJbnRlbnRCaXRzLkd1aWxkTWVtYmVycykpIHByaXZpbGVnZWQucHVzaCgnR3VpbGRNZW1iZXJzJyk7XHJcbiAgICBpZiAodGhpcy5oYXMoR2F0ZXdheUludGVudEJpdHMuR3VpbGRQcmVzZW5jZXMpKSBwcml2aWxlZ2VkLnB1c2goJ0d1aWxkUHJlc2VuY2VzJyk7XHJcbiAgICBpZiAodGhpcy5oYXMoR2F0ZXdheUludGVudEJpdHMuTWVzc2FnZUNvbnRlbnQpKSBwcml2aWxlZ2VkLnB1c2goJ01lc3NhZ2VDb250ZW50Jyk7XHJcbiAgICByZXR1cm4gcHJpdmlsZWdlZDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDYWxjdWxhdGUgaW50ZW50cyBmcm9tIGFuIGFycmF5IG9mIGludGVudCBuYW1lcyBvciB2YWx1ZXNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjYWxjdWxhdGVJbnRlbnRzKGludGVudHM6IChJbnRlbnRGbGFnc1N0cmluZyB8IG51bWJlcilbXSk6IG51bWJlciB7XHJcbiAgcmV0dXJuIGludGVudHMucmVkdWNlPG51bWJlcj4oKGFjYywgaW50ZW50KSA9PiB7XHJcbiAgICBpZiAodHlwZW9mIGludGVudCA9PT0gJ251bWJlcicpIHJldHVybiBhY2MgfCBpbnRlbnQ7XHJcbiAgICBpZiAoaW50ZW50IGluIEdhdGV3YXlJbnRlbnRCaXRzKSByZXR1cm4gYWNjIHwgR2F0ZXdheUludGVudEJpdHNbaW50ZW50IGFzIGtleW9mIHR5cGVvZiBHYXRld2F5SW50ZW50Qml0c107XHJcbiAgICByZXR1cm4gYWNjO1xyXG4gIH0sIDApO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IGFsbCBpbnRlbnQgbmFtZXMgZnJvbSBhIGJpdGZpZWxkIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUludGVudHMoYml0czogbnVtYmVyKTogSW50ZW50RmxhZ3NTdHJpbmdbXSB7XHJcbiAgY29uc3QgbmFtZXM6IEludGVudEZsYWdzU3RyaW5nW10gPSBbXTtcclxuICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoR2F0ZXdheUludGVudEJpdHMpKSB7XHJcbiAgICBpZiAoKGJpdHMgJiB2YWx1ZSkgPT09IHZhbHVlKSB7XHJcbiAgICAgIG5hbWVzLnB1c2gobmFtZSBhcyBJbnRlbnRGbGFnc1N0cmluZyk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBuYW1lcztcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW50ZW50c0JpdEZpZWxkO1xyXG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partials - Handle uncached/partial data structures
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Partial types that can be enabled
|
|
6
|
+
*/
|
|
7
|
+
export declare enum Partials {
|
|
8
|
+
User = 0,
|
|
9
|
+
Channel = 1,
|
|
10
|
+
GuildMember = 2,
|
|
11
|
+
Message = 3,
|
|
12
|
+
Reaction = 4,
|
|
13
|
+
GuildScheduledEvent = 5,
|
|
14
|
+
ThreadMember = 6
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if a structure is partial (missing data)
|
|
18
|
+
*/
|
|
19
|
+
export declare function isPartial(obj: any): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Create a partial user structure
|
|
22
|
+
*/
|
|
23
|
+
export declare function createPartialUser(id: string): PartialUser;
|
|
24
|
+
/**
|
|
25
|
+
* Create a partial channel structure
|
|
26
|
+
*/
|
|
27
|
+
export declare function createPartialChannel(id: string): PartialChannel;
|
|
28
|
+
/**
|
|
29
|
+
* Create a partial message structure
|
|
30
|
+
*/
|
|
31
|
+
export declare function createPartialMessage(id: string, channelId: string): PartialMessage;
|
|
32
|
+
/**
|
|
33
|
+
* Create a partial guild member structure
|
|
34
|
+
*/
|
|
35
|
+
export declare function createPartialGuildMember(userId: string, guildId: string): PartialGuildMember;
|
|
36
|
+
/**
|
|
37
|
+
* Create a partial reaction structure
|
|
38
|
+
*/
|
|
39
|
+
export declare function createPartialReaction(messageId: string, emoji: string): PartialReaction;
|
|
40
|
+
/**
|
|
41
|
+
* Partial structure types
|
|
42
|
+
*/
|
|
43
|
+
export interface PartialUser {
|
|
44
|
+
id: string;
|
|
45
|
+
partial: true;
|
|
46
|
+
username: string | null;
|
|
47
|
+
discriminator: string | null;
|
|
48
|
+
avatar: string | null;
|
|
49
|
+
bot: boolean | null;
|
|
50
|
+
fetch(): Promise<any>;
|
|
51
|
+
toString(): string;
|
|
52
|
+
}
|
|
53
|
+
export interface PartialChannel {
|
|
54
|
+
id: string;
|
|
55
|
+
partial: true;
|
|
56
|
+
type: number | null;
|
|
57
|
+
name: string | null;
|
|
58
|
+
fetch(): Promise<any>;
|
|
59
|
+
toString(): string;
|
|
60
|
+
}
|
|
61
|
+
export interface PartialMessage {
|
|
62
|
+
id: string;
|
|
63
|
+
channelId: string;
|
|
64
|
+
partial: true;
|
|
65
|
+
content: string | null;
|
|
66
|
+
author: any | null;
|
|
67
|
+
embeds: any[] | null;
|
|
68
|
+
attachments: any[] | null;
|
|
69
|
+
fetch(): Promise<any>;
|
|
70
|
+
toString(): string;
|
|
71
|
+
}
|
|
72
|
+
export interface PartialGuildMember {
|
|
73
|
+
id: string;
|
|
74
|
+
guildId: string;
|
|
75
|
+
partial: true;
|
|
76
|
+
user: any | null;
|
|
77
|
+
nick: string | null;
|
|
78
|
+
roles: string[] | null;
|
|
79
|
+
joinedAt: Date | null;
|
|
80
|
+
fetch(): Promise<any>;
|
|
81
|
+
toString(): string;
|
|
82
|
+
}
|
|
83
|
+
export interface PartialReaction {
|
|
84
|
+
messageId: string;
|
|
85
|
+
emoji: string;
|
|
86
|
+
partial: true;
|
|
87
|
+
count: number | null;
|
|
88
|
+
me: boolean | null;
|
|
89
|
+
fetch(): Promise<any>;
|
|
90
|
+
toString(): string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Make a structure partial-aware with fetch capability
|
|
94
|
+
*/
|
|
95
|
+
export declare function makePartialAware<T extends {
|
|
96
|
+
id: string;
|
|
97
|
+
}>(structure: T, client: any, fetchFn: (id: string) => Promise<T>): T & {
|
|
98
|
+
partial: boolean;
|
|
99
|
+
fetch: () => Promise<T>;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Check if partials are enabled for a type
|
|
103
|
+
*/
|
|
104
|
+
export declare function hasPartial(client: any, partial: Partials): boolean;
|
|
105
|
+
export default Partials;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Partials - Handle uncached/partial data structures
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Partials = void 0;
|
|
7
|
+
exports.isPartial = isPartial;
|
|
8
|
+
exports.createPartialUser = createPartialUser;
|
|
9
|
+
exports.createPartialChannel = createPartialChannel;
|
|
10
|
+
exports.createPartialMessage = createPartialMessage;
|
|
11
|
+
exports.createPartialGuildMember = createPartialGuildMember;
|
|
12
|
+
exports.createPartialReaction = createPartialReaction;
|
|
13
|
+
exports.makePartialAware = makePartialAware;
|
|
14
|
+
exports.hasPartial = hasPartial;
|
|
15
|
+
/**
|
|
16
|
+
* Partial types that can be enabled
|
|
17
|
+
*/
|
|
18
|
+
var Partials;
|
|
19
|
+
(function (Partials) {
|
|
20
|
+
Partials[Partials["User"] = 0] = "User";
|
|
21
|
+
Partials[Partials["Channel"] = 1] = "Channel";
|
|
22
|
+
Partials[Partials["GuildMember"] = 2] = "GuildMember";
|
|
23
|
+
Partials[Partials["Message"] = 3] = "Message";
|
|
24
|
+
Partials[Partials["Reaction"] = 4] = "Reaction";
|
|
25
|
+
Partials[Partials["GuildScheduledEvent"] = 5] = "GuildScheduledEvent";
|
|
26
|
+
Partials[Partials["ThreadMember"] = 6] = "ThreadMember";
|
|
27
|
+
})(Partials || (exports.Partials = Partials = {}));
|
|
28
|
+
/**
|
|
29
|
+
* Check if a structure is partial (missing data)
|
|
30
|
+
*/
|
|
31
|
+
function isPartial(obj) {
|
|
32
|
+
return obj?.partial === true;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create a partial user structure
|
|
36
|
+
*/
|
|
37
|
+
function createPartialUser(id) {
|
|
38
|
+
return {
|
|
39
|
+
id,
|
|
40
|
+
partial: true,
|
|
41
|
+
username: null,
|
|
42
|
+
discriminator: null,
|
|
43
|
+
avatar: null,
|
|
44
|
+
bot: null,
|
|
45
|
+
async fetch() {
|
|
46
|
+
throw new Error('Cannot fetch partial user without client context');
|
|
47
|
+
},
|
|
48
|
+
toString() {
|
|
49
|
+
return `<@${id}>`;
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create a partial channel structure
|
|
55
|
+
*/
|
|
56
|
+
function createPartialChannel(id) {
|
|
57
|
+
return {
|
|
58
|
+
id,
|
|
59
|
+
partial: true,
|
|
60
|
+
type: null,
|
|
61
|
+
name: null,
|
|
62
|
+
async fetch() {
|
|
63
|
+
throw new Error('Cannot fetch partial channel without client context');
|
|
64
|
+
},
|
|
65
|
+
toString() {
|
|
66
|
+
return `<#${id}>`;
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create a partial message structure
|
|
72
|
+
*/
|
|
73
|
+
function createPartialMessage(id, channelId) {
|
|
74
|
+
return {
|
|
75
|
+
id,
|
|
76
|
+
channelId,
|
|
77
|
+
partial: true,
|
|
78
|
+
content: null,
|
|
79
|
+
author: null,
|
|
80
|
+
embeds: null,
|
|
81
|
+
attachments: null,
|
|
82
|
+
async fetch() {
|
|
83
|
+
throw new Error('Cannot fetch partial message without client context');
|
|
84
|
+
},
|
|
85
|
+
toString() {
|
|
86
|
+
return `Message(${id})`;
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create a partial guild member structure
|
|
92
|
+
*/
|
|
93
|
+
function createPartialGuildMember(userId, guildId) {
|
|
94
|
+
return {
|
|
95
|
+
id: userId,
|
|
96
|
+
guildId,
|
|
97
|
+
partial: true,
|
|
98
|
+
user: null,
|
|
99
|
+
nick: null,
|
|
100
|
+
roles: null,
|
|
101
|
+
joinedAt: null,
|
|
102
|
+
async fetch() {
|
|
103
|
+
throw new Error('Cannot fetch partial member without client context');
|
|
104
|
+
},
|
|
105
|
+
toString() {
|
|
106
|
+
return `<@${userId}>`;
|
|
107
|
+
},
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a partial reaction structure
|
|
112
|
+
*/
|
|
113
|
+
function createPartialReaction(messageId, emoji) {
|
|
114
|
+
return {
|
|
115
|
+
messageId,
|
|
116
|
+
emoji,
|
|
117
|
+
partial: true,
|
|
118
|
+
count: null,
|
|
119
|
+
me: null,
|
|
120
|
+
async fetch() {
|
|
121
|
+
throw new Error('Cannot fetch partial reaction without client context');
|
|
122
|
+
},
|
|
123
|
+
toString() {
|
|
124
|
+
return emoji;
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Make a structure partial-aware with fetch capability
|
|
130
|
+
*/
|
|
131
|
+
function makePartialAware(structure, client, fetchFn) {
|
|
132
|
+
return {
|
|
133
|
+
...structure,
|
|
134
|
+
partial: false,
|
|
135
|
+
async fetch() {
|
|
136
|
+
const fetched = await fetchFn(structure.id);
|
|
137
|
+
Object.assign(this, fetched, { partial: false });
|
|
138
|
+
return this;
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Check if partials are enabled for a type
|
|
144
|
+
*/
|
|
145
|
+
function hasPartial(client, partial) {
|
|
146
|
+
return client.options?.partials?.includes(partial) ?? false;
|
|
147
|
+
}
|
|
148
|
+
exports.default = Partials;
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFydGlhbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvUGFydGlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7QUFrQkgsOEJBRUM7QUFLRCw4Q0FpQkM7QUFLRCxvREFlQztBQUtELG9EQWtCQztBQUtELDREQWtCQztBQUtELHNEQWdCQztBQThERCw0Q0FjQztBQUtELGdDQUVDO0FBbE5EOztHQUVHO0FBQ0gsSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLHVDQUFRLENBQUE7SUFDUiw2Q0FBVyxDQUFBO0lBQ1gscURBQWUsQ0FBQTtJQUNmLDZDQUFXLENBQUE7SUFDWCwrQ0FBWSxDQUFBO0lBQ1oscUVBQXVCLENBQUE7SUFDdkIsdURBQWdCLENBQUE7QUFDbEIsQ0FBQyxFQVJXLFFBQVEsd0JBQVIsUUFBUSxRQVFuQjtBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsU0FBUyxDQUFDLEdBQVE7SUFDaEMsT0FBTyxHQUFHLEVBQUUsT0FBTyxLQUFLLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxFQUFVO0lBQzFDLE9BQU87UUFDTCxFQUFFO1FBQ0YsT0FBTyxFQUFFLElBQUk7UUFDYixRQUFRLEVBQUUsSUFBSTtRQUNkLGFBQWEsRUFBRSxJQUFJO1FBQ25CLE1BQU0sRUFBRSxJQUFJO1FBQ1osR0FBRyxFQUFFLElBQUk7UUFFVCxLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUNwQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEVBQVU7SUFDN0MsT0FBTztRQUNMLEVBQUU7UUFDRixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxJQUFJO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFFVixLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUNwQixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEVBQVUsRUFBRSxTQUFpQjtJQUNoRSxPQUFPO1FBQ0wsRUFBRTtRQUNGLFNBQVM7UUFDVCxPQUFPLEVBQUUsSUFBSTtRQUNiLE9BQU8sRUFBRSxJQUFJO1FBQ2IsTUFBTSxFQUFFLElBQUk7UUFDWixNQUFNLEVBQUUsSUFBSTtRQUNaLFdBQVcsRUFBRSxJQUFJO1FBRWpCLEtBQUssQ0FBQyxLQUFLO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxRQUFRO1lBQ04sT0FBTyxXQUFXLEVBQUUsR0FBRyxDQUFDO1FBQzFCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsTUFBYyxFQUFFLE9BQWU7SUFDdEUsT0FBTztRQUNMLEVBQUUsRUFBRSxNQUFNO1FBQ1YsT0FBTztRQUNQLE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSSxFQUFFLElBQUk7UUFDVixJQUFJLEVBQUUsSUFBSTtRQUNWLEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7UUFFZCxLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxNQUFNLEdBQUcsQ0FBQztRQUN4QixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLFNBQWlCLEVBQUUsS0FBYTtJQUNwRSxPQUFPO1FBQ0wsU0FBUztRQUNULEtBQUs7UUFDTCxPQUFPLEVBQUUsSUFBSTtRQUNiLEtBQUssRUFBRSxJQUFJO1FBQ1gsRUFBRSxFQUFFLElBQUk7UUFFUixLQUFLLENBQUMsS0FBSztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQsUUFBUTtZQUNOLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBMkREOztHQUVHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQzlCLFNBQVksRUFDWixNQUFXLEVBQ1gsT0FBbUM7SUFFbkMsT0FBTztRQUNMLEdBQUcsU0FBUztRQUNaLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxDQUFDLEtBQUs7WUFDVCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDakQsT0FBTyxJQUFTLENBQUM7UUFDbkIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixVQUFVLENBQUMsTUFBVyxFQUFFLE9BQWlCO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQztBQUM5RCxDQUFDO0FBRUQsa0JBQWUsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFBhcnRpYWxzIC0gSGFuZGxlIHVuY2FjaGVkL3BhcnRpYWwgZGF0YSBzdHJ1Y3R1cmVzXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFBhcnRpYWwgdHlwZXMgdGhhdCBjYW4gYmUgZW5hYmxlZFxyXG4gKi9cclxuZXhwb3J0IGVudW0gUGFydGlhbHMge1xyXG4gIFVzZXIgPSAwLFxyXG4gIENoYW5uZWwgPSAxLFxyXG4gIEd1aWxkTWVtYmVyID0gMixcclxuICBNZXNzYWdlID0gMyxcclxuICBSZWFjdGlvbiA9IDQsXHJcbiAgR3VpbGRTY2hlZHVsZWRFdmVudCA9IDUsXHJcbiAgVGhyZWFkTWVtYmVyID0gNixcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIGEgc3RydWN0dXJlIGlzIHBhcnRpYWwgKG1pc3NpbmcgZGF0YSlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1BhcnRpYWwob2JqOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gb2JqPy5wYXJ0aWFsID09PSB0cnVlO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgcGFydGlhbCB1c2VyIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxVc2VyKGlkOiBzdHJpbmcpOiBQYXJ0aWFsVXNlciB7XHJcbiAgcmV0dXJuIHtcclxuICAgIGlkLFxyXG4gICAgcGFydGlhbDogdHJ1ZSxcclxuICAgIHVzZXJuYW1lOiBudWxsLFxyXG4gICAgZGlzY3JpbWluYXRvcjogbnVsbCxcclxuICAgIGF2YXRhcjogbnVsbCxcclxuICAgIGJvdDogbnVsbCxcclxuICAgIFxyXG4gICAgYXN5bmMgZmV0Y2goKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZldGNoIHBhcnRpYWwgdXNlciB3aXRob3V0IGNsaWVudCBjb250ZXh0Jyk7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICB0b1N0cmluZygpIHtcclxuICAgICAgcmV0dXJuIGA8QCR7aWR9PmA7XHJcbiAgICB9LFxyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBwYXJ0aWFsIGNoYW5uZWwgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFydGlhbENoYW5uZWwoaWQ6IHN0cmluZyk6IFBhcnRpYWxDaGFubmVsIHtcclxuICByZXR1cm4ge1xyXG4gICAgaWQsXHJcbiAgICBwYXJ0aWFsOiB0cnVlLFxyXG4gICAgdHlwZTogbnVsbCxcclxuICAgIG5hbWU6IG51bGwsXHJcbiAgICBcclxuICAgIGFzeW5jIGZldGNoKCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmZXRjaCBwYXJ0aWFsIGNoYW5uZWwgd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xyXG4gICAgfSxcclxuICAgIFxyXG4gICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgIHJldHVybiBgPCMke2lkfT5gO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgcGFydGlhbCBtZXNzYWdlIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhcnRpYWxNZXNzYWdlKGlkOiBzdHJpbmcsIGNoYW5uZWxJZDogc3RyaW5nKTogUGFydGlhbE1lc3NhZ2Uge1xyXG4gIHJldHVybiB7XHJcbiAgICBpZCxcclxuICAgIGNoYW5uZWxJZCxcclxuICAgIHBhcnRpYWw6IHRydWUsXHJcbiAgICBjb250ZW50OiBudWxsLFxyXG4gICAgYXV0aG9yOiBudWxsLFxyXG4gICAgZW1iZWRzOiBudWxsLFxyXG4gICAgYXR0YWNobWVudHM6IG51bGwsXHJcbiAgICBcclxuICAgIGFzeW5jIGZldGNoKCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmZXRjaCBwYXJ0aWFsIG1lc3NhZ2Ugd2l0aG91dCBjbGllbnQgY29udGV4dCcpO1xyXG4gICAgfSxcclxuICAgIFxyXG4gICAgdG9TdHJpbmcoKSB7XHJcbiAgICAgIHJldHVybiBgTWVzc2FnZSgke2lkfSlgO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgcGFydGlhbCBndWlsZCBtZW1iZXIgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGFydGlhbEd1aWxkTWVtYmVyKHVzZXJJZDogc3RyaW5nLCBndWlsZElkOiBzdHJpbmcpOiBQYXJ0aWFsR3VpbGRNZW1iZXIge1xyXG4gIHJldHVybiB7XHJcbiAgICBpZDogdXNlcklkLFxyXG4gICAgZ3VpbGRJZCxcclxuICAgIHBhcnRpYWw6IHRydWUsXHJcbiAgICB1c2VyOiBudWxsLFxyXG4gICAgbmljazogbnVsbCxcclxuICAgIHJvbGVzOiBudWxsLFxyXG4gICAgam9pbmVkQXQ6IG51bGwsXHJcbiAgICBcclxuICAgIGFzeW5jIGZldGNoKCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmZXRjaCBwYXJ0aWFsIG1lbWJlciB3aXRob3V0IGNsaWVudCBjb250ZXh0Jyk7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICB0b1N0cmluZygpIHtcclxuICAgICAgcmV0dXJuIGA8QCR7dXNlcklkfT5gO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgcGFydGlhbCByZWFjdGlvbiBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXJ0aWFsUmVhY3Rpb24obWVzc2FnZUlkOiBzdHJpbmcsIGVtb2ppOiBzdHJpbmcpOiBQYXJ0aWFsUmVhY3Rpb24ge1xyXG4gIHJldHVybiB7XHJcbiAgICBtZXNzYWdlSWQsXHJcbiAgICBlbW9qaSxcclxuICAgIHBhcnRpYWw6IHRydWUsXHJcbiAgICBjb3VudDogbnVsbCxcclxuICAgIG1lOiBudWxsLFxyXG4gICAgXHJcbiAgICBhc3luYyBmZXRjaCgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmV0Y2ggcGFydGlhbCByZWFjdGlvbiB3aXRob3V0IGNsaWVudCBjb250ZXh0Jyk7XHJcbiAgICB9LFxyXG4gICAgXHJcbiAgICB0b1N0cmluZygpIHtcclxuICAgICAgcmV0dXJuIGVtb2ppO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogUGFydGlhbCBzdHJ1Y3R1cmUgdHlwZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFVzZXIge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcGFydGlhbDogdHJ1ZTtcclxuICB1c2VybmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBkaXNjcmltaW5hdG9yOiBzdHJpbmcgfCBudWxsO1xyXG4gIGF2YXRhcjogc3RyaW5nIHwgbnVsbDtcclxuICBib3Q6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGZldGNoKCk6IFByb21pc2U8YW55PjtcclxuICB0b1N0cmluZygpOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbENoYW5uZWwge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcGFydGlhbDogdHJ1ZTtcclxuICB0eXBlOiBudW1iZXIgfCBudWxsO1xyXG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgZmV0Y2goKTogUHJvbWlzZTxhbnk+O1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsTWVzc2FnZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBjaGFubmVsSWQ6IHN0cmluZztcclxuICBwYXJ0aWFsOiB0cnVlO1xyXG4gIGNvbnRlbnQ6IHN0cmluZyB8IG51bGw7XHJcbiAgYXV0aG9yOiBhbnkgfCBudWxsO1xyXG4gIGVtYmVkczogYW55W10gfCBudWxsO1xyXG4gIGF0dGFjaG1lbnRzOiBhbnlbXSB8IG51bGw7XHJcbiAgZmV0Y2goKTogUHJvbWlzZTxhbnk+O1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXJ0aWFsR3VpbGRNZW1iZXIge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgZ3VpbGRJZDogc3RyaW5nO1xyXG4gIHBhcnRpYWw6IHRydWU7XHJcbiAgdXNlcjogYW55IHwgbnVsbDtcclxuICBuaWNrOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJvbGVzOiBzdHJpbmdbXSB8IG51bGw7XHJcbiAgam9pbmVkQXQ6IERhdGUgfCBudWxsO1xyXG4gIGZldGNoKCk6IFByb21pc2U8YW55PjtcclxuICB0b1N0cmluZygpOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFydGlhbFJlYWN0aW9uIHtcclxuICBtZXNzYWdlSWQ6IHN0cmluZztcclxuICBlbW9qaTogc3RyaW5nO1xyXG4gIHBhcnRpYWw6IHRydWU7XHJcbiAgY291bnQ6IG51bWJlciB8IG51bGw7XHJcbiAgbWU6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGZldGNoKCk6IFByb21pc2U8YW55PjtcclxuICB0b1N0cmluZygpOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNYWtlIGEgc3RydWN0dXJlIHBhcnRpYWwtYXdhcmUgd2l0aCBmZXRjaCBjYXBhYmlsaXR5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZVBhcnRpYWxBd2FyZTxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIH0+KFxyXG4gIHN0cnVjdHVyZTogVCxcclxuICBjbGllbnQ6IGFueSxcclxuICBmZXRjaEZuOiAoaWQ6IHN0cmluZykgPT4gUHJvbWlzZTxUPlxyXG4pOiBUICYgeyBwYXJ0aWFsOiBib29sZWFuOyBmZXRjaDogKCkgPT4gUHJvbWlzZTxUPiB9IHtcclxuICByZXR1cm4ge1xyXG4gICAgLi4uc3RydWN0dXJlLFxyXG4gICAgcGFydGlhbDogZmFsc2UsXHJcbiAgICBhc3luYyBmZXRjaCgpIHtcclxuICAgICAgY29uc3QgZmV0Y2hlZCA9IGF3YWl0IGZldGNoRm4oc3RydWN0dXJlLmlkKTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmZXRjaGVkLCB7IHBhcnRpYWw6IGZhbHNlIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcyBhcyBUO1xyXG4gICAgfSxcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgcGFydGlhbHMgYXJlIGVuYWJsZWQgZm9yIGEgdHlwZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc1BhcnRpYWwoY2xpZW50OiBhbnksIHBhcnRpYWw6IFBhcnRpYWxzKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGNsaWVudC5vcHRpb25zPy5wYXJ0aWFscz8uaW5jbHVkZXMocGFydGlhbCkgPz8gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFBhcnRpYWxzO1xyXG4iXX0=
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { PermissionFlagsBits } from '../enums';
|
|
2
|
+
/**
|
|
3
|
+
* Permission names type
|
|
4
|
+
*/
|
|
5
|
+
export type PermissionString = keyof typeof PermissionFlagsBits;
|
|
6
|
+
/**
|
|
7
|
+
* Resolvable permission type
|
|
8
|
+
*/
|
|
9
|
+
export type PermissionResolvable = bigint | bigint[] | PermissionString | PermissionString[] | PermissionsBitField;
|
|
10
|
+
/**
|
|
11
|
+
* Bit field for permissions
|
|
12
|
+
* API compatible with Discord.js PermissionsBitField
|
|
13
|
+
*/
|
|
14
|
+
export declare class PermissionsBitField {
|
|
15
|
+
/** The raw bits */
|
|
16
|
+
bitfield: bigint;
|
|
17
|
+
/** All permission flags */
|
|
18
|
+
static Flags: {
|
|
19
|
+
readonly CreateInstantInvite: bigint;
|
|
20
|
+
readonly KickMembers: bigint;
|
|
21
|
+
readonly BanMembers: bigint;
|
|
22
|
+
readonly Administrator: bigint;
|
|
23
|
+
readonly ManageChannels: bigint;
|
|
24
|
+
readonly ManageGuild: bigint;
|
|
25
|
+
readonly AddReactions: bigint;
|
|
26
|
+
readonly ViewAuditLog: bigint;
|
|
27
|
+
readonly ViewGuildInsights: bigint;
|
|
28
|
+
readonly Stream: bigint;
|
|
29
|
+
readonly ViewChannel: bigint;
|
|
30
|
+
readonly SendMessages: bigint;
|
|
31
|
+
readonly SendTTSMessages: bigint;
|
|
32
|
+
readonly ManageMessages: bigint;
|
|
33
|
+
readonly EmbedLinks: bigint;
|
|
34
|
+
readonly AttachFiles: bigint;
|
|
35
|
+
readonly ReadMessageHistory: bigint;
|
|
36
|
+
readonly UseExternalEmojis: bigint;
|
|
37
|
+
readonly UseSlashCommands: bigint;
|
|
38
|
+
readonly MentionEveryone: bigint;
|
|
39
|
+
readonly Connect: bigint;
|
|
40
|
+
readonly Speak: bigint;
|
|
41
|
+
readonly MuteMembers: bigint;
|
|
42
|
+
readonly DeafenMembers: bigint;
|
|
43
|
+
readonly MoveMembers: bigint;
|
|
44
|
+
readonly UseVAD: bigint;
|
|
45
|
+
readonly ChangeCodec: bigint;
|
|
46
|
+
readonly AudioQualityAdmin: bigint;
|
|
47
|
+
readonly VideoCall: bigint;
|
|
48
|
+
readonly ShareScreen: bigint;
|
|
49
|
+
readonly ShareCamera: bigint;
|
|
50
|
+
readonly ControlQuality: bigint;
|
|
51
|
+
readonly RequestToSpeak: bigint;
|
|
52
|
+
readonly ManageEvents: bigint;
|
|
53
|
+
readonly AddMembers: bigint;
|
|
54
|
+
readonly RemoveMembers: bigint;
|
|
55
|
+
readonly ChangeGroupIcon: bigint;
|
|
56
|
+
readonly ChangeDMSettings: bigint;
|
|
57
|
+
readonly ManageGroup: bigint;
|
|
58
|
+
readonly UseActivities: bigint;
|
|
59
|
+
readonly ModerateMembers: bigint;
|
|
60
|
+
readonly ManageRoles: bigint;
|
|
61
|
+
readonly ManageEmojis: bigint;
|
|
62
|
+
readonly PrioritySpeaker: bigint;
|
|
63
|
+
};
|
|
64
|
+
/** All permissions combined */
|
|
65
|
+
static All: bigint;
|
|
66
|
+
/** Default permissions */
|
|
67
|
+
static Default: bigint;
|
|
68
|
+
constructor(bits?: PermissionResolvable);
|
|
69
|
+
/**
|
|
70
|
+
* Check if this bitfield has a permission
|
|
71
|
+
*/
|
|
72
|
+
has(permission: PermissionResolvable, checkAdmin?: boolean): boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Check if this bitfield has any of the permissions
|
|
75
|
+
*/
|
|
76
|
+
any(permissions: PermissionResolvable, checkAdmin?: boolean): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Check if this bitfield is missing any permissions
|
|
79
|
+
*/
|
|
80
|
+
missing(permissions: PermissionResolvable, checkAdmin?: boolean): PermissionString[];
|
|
81
|
+
/**
|
|
82
|
+
* Add permissions to this bitfield
|
|
83
|
+
*/
|
|
84
|
+
add(...permissions: PermissionResolvable[]): this;
|
|
85
|
+
/**
|
|
86
|
+
* Remove permissions from this bitfield
|
|
87
|
+
*/
|
|
88
|
+
remove(...permissions: PermissionResolvable[]): this;
|
|
89
|
+
/**
|
|
90
|
+
* Serialize this bitfield to an array of permission names
|
|
91
|
+
*/
|
|
92
|
+
toArray(): PermissionString[];
|
|
93
|
+
/**
|
|
94
|
+
* Serialize this bitfield to a JSON-compatible value
|
|
95
|
+
*/
|
|
96
|
+
toJSON(): string;
|
|
97
|
+
/**
|
|
98
|
+
* Get the string representation
|
|
99
|
+
*/
|
|
100
|
+
toString(): string;
|
|
101
|
+
/**
|
|
102
|
+
* Freeze this bitfield
|
|
103
|
+
*/
|
|
104
|
+
freeze(): Readonly<this>;
|
|
105
|
+
/**
|
|
106
|
+
* Check equality with another bitfield
|
|
107
|
+
*/
|
|
108
|
+
equals(other: PermissionResolvable): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Create a new bitfield with the same bits
|
|
111
|
+
*/
|
|
112
|
+
clone(): PermissionsBitField;
|
|
113
|
+
/**
|
|
114
|
+
* Resolve a permission to a bigint
|
|
115
|
+
*/
|
|
116
|
+
static resolve(permission: PermissionResolvable): bigint;
|
|
117
|
+
}
|
|
118
|
+
export default PermissionsBitField;
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionsBitField = void 0;
|
|
4
|
+
const enums_1 = require("../enums");
|
|
5
|
+
/**
|
|
6
|
+
* Bit field for permissions
|
|
7
|
+
* API compatible with Discord.js PermissionsBitField
|
|
8
|
+
*/
|
|
9
|
+
class PermissionsBitField {
|
|
10
|
+
/** The raw bits */
|
|
11
|
+
bitfield;
|
|
12
|
+
/** All permission flags */
|
|
13
|
+
static Flags = enums_1.PermissionFlagsBits;
|
|
14
|
+
/** All permissions combined */
|
|
15
|
+
static All = Object.values(enums_1.PermissionFlagsBits).reduce((acc, val) => acc | val, 0n);
|
|
16
|
+
/** Default permissions */
|
|
17
|
+
static Default = BigInt(0);
|
|
18
|
+
constructor(bits = 0n) {
|
|
19
|
+
this.bitfield = PermissionsBitField.resolve(bits);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if this bitfield has a permission
|
|
23
|
+
*/
|
|
24
|
+
has(permission, checkAdmin = true) {
|
|
25
|
+
// Admin has all permissions
|
|
26
|
+
if (checkAdmin && this.bitfield & enums_1.PermissionFlagsBits.Administrator) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
const bit = PermissionsBitField.resolve(permission);
|
|
30
|
+
return (this.bitfield & bit) === bit;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Check if this bitfield has any of the permissions
|
|
34
|
+
*/
|
|
35
|
+
any(permissions, checkAdmin = true) {
|
|
36
|
+
// Admin has all permissions
|
|
37
|
+
if (checkAdmin && this.bitfield & enums_1.PermissionFlagsBits.Administrator) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
const bit = PermissionsBitField.resolve(permissions);
|
|
41
|
+
return (this.bitfield & bit) !== 0n;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if this bitfield is missing any permissions
|
|
45
|
+
*/
|
|
46
|
+
missing(permissions, checkAdmin = true) {
|
|
47
|
+
const missing = [];
|
|
48
|
+
for (const [name, bit] of Object.entries(enums_1.PermissionFlagsBits)) {
|
|
49
|
+
const resolved = PermissionsBitField.resolve(permissions);
|
|
50
|
+
if ((resolved & bit) && !this.has(bit, checkAdmin)) {
|
|
51
|
+
missing.push(name);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return missing;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Add permissions to this bitfield
|
|
58
|
+
*/
|
|
59
|
+
add(...permissions) {
|
|
60
|
+
for (const permission of permissions) {
|
|
61
|
+
this.bitfield |= PermissionsBitField.resolve(permission);
|
|
62
|
+
}
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Remove permissions from this bitfield
|
|
67
|
+
*/
|
|
68
|
+
remove(...permissions) {
|
|
69
|
+
for (const permission of permissions) {
|
|
70
|
+
this.bitfield &= ~PermissionsBitField.resolve(permission);
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Serialize this bitfield to an array of permission names
|
|
76
|
+
*/
|
|
77
|
+
toArray() {
|
|
78
|
+
const result = [];
|
|
79
|
+
for (const [name, bit] of Object.entries(enums_1.PermissionFlagsBits)) {
|
|
80
|
+
if (this.bitfield & bit) {
|
|
81
|
+
result.push(name);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Serialize this bitfield to a JSON-compatible value
|
|
88
|
+
*/
|
|
89
|
+
toJSON() {
|
|
90
|
+
return this.bitfield.toString();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get the string representation
|
|
94
|
+
*/
|
|
95
|
+
toString() {
|
|
96
|
+
return this.bitfield.toString();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Freeze this bitfield
|
|
100
|
+
*/
|
|
101
|
+
freeze() {
|
|
102
|
+
return Object.freeze(this);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check equality with another bitfield
|
|
106
|
+
*/
|
|
107
|
+
equals(other) {
|
|
108
|
+
return this.bitfield === PermissionsBitField.resolve(other);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create a new bitfield with the same bits
|
|
112
|
+
*/
|
|
113
|
+
clone() {
|
|
114
|
+
return new PermissionsBitField(this.bitfield);
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Resolve a permission to a bigint
|
|
118
|
+
*/
|
|
119
|
+
static resolve(permission) {
|
|
120
|
+
if (typeof permission === 'bigint') {
|
|
121
|
+
return permission;
|
|
122
|
+
}
|
|
123
|
+
if (permission instanceof PermissionsBitField) {
|
|
124
|
+
return permission.bitfield;
|
|
125
|
+
}
|
|
126
|
+
if (typeof permission === 'string') {
|
|
127
|
+
const bit = enums_1.PermissionFlagsBits[permission];
|
|
128
|
+
if (bit === undefined) {
|
|
129
|
+
throw new Error(`Unknown permission: ${permission}`);
|
|
130
|
+
}
|
|
131
|
+
return bit;
|
|
132
|
+
}
|
|
133
|
+
if (Array.isArray(permission)) {
|
|
134
|
+
let result = 0n;
|
|
135
|
+
for (const p of permission) {
|
|
136
|
+
result |= PermissionsBitField.resolve(p);
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
throw new Error(`Invalid permission: ${permission}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.PermissionsBitField = PermissionsBitField;
|
|
144
|
+
exports.default = PermissionsBitField;
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGVybWlzc2lvbnNCaXRGaWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9QZXJtaXNzaW9uc0JpdEZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUErQztBQWlCL0M7OztHQUdHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDOUIsbUJBQW1CO0lBQ1osUUFBUSxDQUFTO0lBRXhCLDJCQUEyQjtJQUMzQixNQUFNLENBQUMsS0FBSyxHQUFHLDJCQUFtQixDQUFDO0lBRW5DLCtCQUErQjtJQUMvQixNQUFNLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMkJBQW1CLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXBGLDBCQUEwQjtJQUMxQixNQUFNLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzQixZQUFZLE9BQTZCLEVBQUU7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRyxDQUFDLFVBQWdDLEVBQUUsVUFBVSxHQUFHLElBQUk7UUFDckQsNEJBQTRCO1FBQzVCLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsMkJBQW1CLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxHQUFHLENBQUMsV0FB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Z0M7UUFDN0MsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO1FBRUQsSUFBSSxVQUFVLFlBQVksbUJBQW1CLEVBQUUsQ0FBQztZQUM5QyxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbkMsTUFBTSxHQUFHLEdBQUcsMkJBQW1CLENBQUMsVUFBOEIsQ0FBQyxDQUFDO1lBQ2hFLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDaEIsS0FBSyxNQUFNLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDM0IsTUFBTSxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQyxDQUFDO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7QUE5Skgsa0RBK0pDO0FBRUQsa0JBQWUsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQZXJtaXNzaW9uRmxhZ3NCaXRzIH0gZnJvbSAnLi4vZW51bXMnO1xyXG5cclxuLyoqXHJcbiAqIFBlcm1pc3Npb24gbmFtZXMgdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgUGVybWlzc2lvblN0cmluZyA9IGtleW9mIHR5cGVvZiBQZXJtaXNzaW9uRmxhZ3NCaXRzO1xyXG5cclxuLyoqXHJcbiAqIFJlc29sdmFibGUgcGVybWlzc2lvbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uUmVzb2x2YWJsZSA9IFxyXG4gIHwgYmlnaW50IFxyXG4gIHwgYmlnaW50W10gXHJcbiAgfCBQZXJtaXNzaW9uU3RyaW5nIFxyXG4gIHwgUGVybWlzc2lvblN0cmluZ1tdIFxyXG4gIHwgUGVybWlzc2lvbnNCaXRGaWVsZDtcclxuXHJcbi8qKlxyXG4gKiBCaXQgZmllbGQgZm9yIHBlcm1pc3Npb25zXHJcbiAqIEFQSSBjb21wYXRpYmxlIHdpdGggRGlzY29yZC5qcyBQZXJtaXNzaW9uc0JpdEZpZWxkXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNCaXRGaWVsZCB7XHJcbiAgLyoqIFRoZSByYXcgYml0cyAqL1xyXG4gIHB1YmxpYyBiaXRmaWVsZDogYmlnaW50O1xyXG5cclxuICAvKiogQWxsIHBlcm1pc3Npb24gZmxhZ3MgKi9cclxuICBzdGF0aWMgRmxhZ3MgPSBQZXJtaXNzaW9uRmxhZ3NCaXRzO1xyXG5cclxuICAvKiogQWxsIHBlcm1pc3Npb25zIGNvbWJpbmVkICovXHJcbiAgc3RhdGljIEFsbCA9IE9iamVjdC52YWx1ZXMoUGVybWlzc2lvbkZsYWdzQml0cykucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjIHwgdmFsLCAwbik7XHJcblxyXG4gIC8qKiBEZWZhdWx0IHBlcm1pc3Npb25zICovXHJcbiAgc3RhdGljIERlZmF1bHQgPSBCaWdJbnQoMCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGJpdHM6IFBlcm1pc3Npb25SZXNvbHZhYmxlID0gMG4pIHtcclxuICAgIHRoaXMuYml0ZmllbGQgPSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUoYml0cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGlzIGJpdGZpZWxkIGhhcyBhIHBlcm1pc3Npb25cclxuICAgKi9cclxuICBoYXMocGVybWlzc2lvbjogUGVybWlzc2lvblJlc29sdmFibGUsIGNoZWNrQWRtaW4gPSB0cnVlKTogYm9vbGVhbiB7XHJcbiAgICAvLyBBZG1pbiBoYXMgYWxsIHBlcm1pc3Npb25zXHJcbiAgICBpZiAoY2hlY2tBZG1pbiAmJiB0aGlzLmJpdGZpZWxkICYgUGVybWlzc2lvbkZsYWdzQml0cy5BZG1pbmlzdHJhdG9yKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGJpdCA9IFBlcm1pc3Npb25zQml0RmllbGQucmVzb2x2ZShwZXJtaXNzaW9uKTtcclxuICAgIHJldHVybiAodGhpcy5iaXRmaWVsZCAmIGJpdCkgPT09IGJpdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIHRoaXMgYml0ZmllbGQgaGFzIGFueSBvZiB0aGUgcGVybWlzc2lvbnNcclxuICAgKi9cclxuICBhbnkocGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlLCBjaGVja0FkbWluID0gdHJ1ZSk6IGJvb2xlYW4ge1xyXG4gICAgLy8gQWRtaW4gaGFzIGFsbCBwZXJtaXNzaW9uc1xyXG4gICAgaWYgKGNoZWNrQWRtaW4gJiYgdGhpcy5iaXRmaWVsZCAmIFBlcm1pc3Npb25GbGFnc0JpdHMuQWRtaW5pc3RyYXRvcikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBiaXQgPSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUocGVybWlzc2lvbnMpO1xyXG4gICAgcmV0dXJuICh0aGlzLmJpdGZpZWxkICYgYml0KSAhPT0gMG47XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB0aGlzIGJpdGZpZWxkIGlzIG1pc3NpbmcgYW55IHBlcm1pc3Npb25zXHJcbiAgICovXHJcbiAgbWlzc2luZyhwZXJtaXNzaW9uczogUGVybWlzc2lvblJlc29sdmFibGUsIGNoZWNrQWRtaW4gPSB0cnVlKTogUGVybWlzc2lvblN0cmluZ1tdIHtcclxuICAgIGNvbnN0IG1pc3Npbmc6IFBlcm1pc3Npb25TdHJpbmdbXSA9IFtdO1xyXG4gICAgXHJcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBiaXRdIG9mIE9iamVjdC5lbnRyaWVzKFBlcm1pc3Npb25GbGFnc0JpdHMpKSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gUGVybWlzc2lvbnNCaXRGaWVsZC5yZXNvbHZlKHBlcm1pc3Npb25zKTtcclxuICAgICAgaWYgKChyZXNvbHZlZCAmIGJpdCkgJiYgIXRoaXMuaGFzKGJpdCwgY2hlY2tBZG1pbikpIHtcclxuICAgICAgICBtaXNzaW5nLnB1c2gobmFtZSBhcyBQZXJtaXNzaW9uU3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gbWlzc2luZztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBwZXJtaXNzaW9ucyB0byB0aGlzIGJpdGZpZWxkXHJcbiAgICovXHJcbiAgYWRkKC4uLnBlcm1pc3Npb25zOiBQZXJtaXNzaW9uUmVzb2x2YWJsZVtdKTogdGhpcyB7XHJcbiAgICBmb3IgKGNvbnN0IHBlcm1pc3Npb24gb2YgcGVybWlzc2lvbnMpIHtcclxuICAgICAgdGhpcy5iaXRmaWVsZCB8PSBQZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUocGVybWlzc2lvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBwZXJtaXNzaW9ucyBmcm9tIHRoaXMgYml0ZmllbGRcclxuICAgKi9cclxuICByZW1vdmUoLi4ucGVybWlzc2lvbnM6IFBlcm1pc3Npb25SZXNvbHZhYmxlW10pOiB0aGlzIHtcclxuICAgIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiBwZXJtaXNzaW9ucykge1xyXG4gICAgICB0aGlzLmJpdGZpZWxkICY9IH5QZXJtaXNzaW9uc0JpdEZpZWxkLnJlc29sdmUocGVybWlzc2lvbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlcmlhbGl6ZSB0aGlzIGJpdGZpZWxkIHRvIGFuIGFycmF5IG9mIHBlcm1pc3Npb24gbmFtZXNcclxuICAgKi9cclxuICB0b0FycmF5KCk6IFBlcm1pc3Npb25TdHJpbmdbXSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IFBlcm1pc3Npb25TdHJpbmdbXSA9IFtdO1xyXG4gICAgXHJcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCBiaXRdIG9mIE9iamVjdC5lbnRyaWVzKFBlcm1pc3Npb25GbGFnc0JpdHMpKSB7XHJcbiAgICAgIGlmICh0aGlzLmJpdGZpZWxkICYgYml0KSB7XHJcbiAgICAgICAgcmVzdWx0LnB1c2gobmFtZSBhcyBQZXJtaXNzaW9uU3RyaW5nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VyaWFsaXplIHRoaXMgYml0ZmllbGQgdG8gYSBKU09OLWNvbXBhdGlibGUgdmFsdWVcclxuICAgKi9cclxuICB0b0pTT04oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvblxyXG4gICAqL1xyXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZC50b1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnJlZXplIHRoaXMgYml0ZmllbGRcclxuICAgKi9cclxuICBmcmVlemUoKTogUmVhZG9ubHk8dGhpcz4ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5mcmVlemUodGhpcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBlcXVhbGl0eSB3aXRoIGFub3RoZXIgYml0ZmllbGRcclxuICAgKi9cclxuICBlcXVhbHMob3RoZXI6IFBlcm1pc3Npb25SZXNvbHZhYmxlKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZCA9PT0gUGVybWlzc2lvbnNCaXRGaWVsZC5yZXNvbHZlKG90aGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhIG5ldyBiaXRmaWVsZCB3aXRoIHRoZSBzYW1lIGJpdHNcclxuICAgKi9cclxuICBjbG9uZSgpOiBQZXJtaXNzaW9uc0JpdEZpZWxkIHtcclxuICAgIHJldHVybiBuZXcgUGVybWlzc2lvbnNCaXRGaWVsZCh0aGlzLmJpdGZpZWxkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmUgYSBwZXJtaXNzaW9uIHRvIGEgYmlnaW50XHJcbiAgICovXHJcbiAgc3RhdGljIHJlc29sdmUocGVybWlzc2lvbjogUGVybWlzc2lvblJlc29sdmFibGUpOiBiaWdpbnQge1xyXG4gICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uID09PSAnYmlnaW50Jykge1xyXG4gICAgICByZXR1cm4gcGVybWlzc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGVybWlzc2lvbiBpbnN0YW5jZW9mIFBlcm1pc3Npb25zQml0RmllbGQpIHtcclxuICAgICAgcmV0dXJuIHBlcm1pc3Npb24uYml0ZmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiBwZXJtaXNzaW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBiaXQgPSBQZXJtaXNzaW9uRmxhZ3NCaXRzW3Blcm1pc3Npb24gYXMgUGVybWlzc2lvblN0cmluZ107XHJcbiAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBwZXJtaXNzaW9uOiAke3Blcm1pc3Npb259YCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGJpdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uKSkge1xyXG4gICAgICBsZXQgcmVzdWx0ID0gMG47XHJcbiAgICAgIGZvciAoY29uc3QgcCBvZiBwZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgcmVzdWx0IHw9IFBlcm1pc3Npb25zQml0RmllbGQucmVzb2x2ZShwKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBwZXJtaXNzaW9uOiAke3Blcm1pc3Npb259YCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBQZXJtaXNzaW9uc0JpdEZpZWxkO1xyXG4iXX0=
|