@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,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Data resolver utilities for handling various data types
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DataResolver = void 0;
|
|
7
|
+
const promises_1 = require("fs/promises");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
/**
|
|
10
|
+
* Resolves various data types to usable formats
|
|
11
|
+
*/
|
|
12
|
+
class DataResolver {
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a BufferResolvable to a Buffer
|
|
15
|
+
* @param resource The resource to resolve
|
|
16
|
+
*/
|
|
17
|
+
static async resolveBuffer(resource) {
|
|
18
|
+
if (Buffer.isBuffer(resource))
|
|
19
|
+
return resource;
|
|
20
|
+
if (typeof resource === 'string') {
|
|
21
|
+
// Check if it's a file path
|
|
22
|
+
if (resource.startsWith('/') || resource.startsWith('./') || resource.startsWith('../') || /^[a-zA-Z]:/.test(resource)) {
|
|
23
|
+
return (0, promises_1.readFile)(resource);
|
|
24
|
+
}
|
|
25
|
+
// Check if it's a URL
|
|
26
|
+
if (resource.startsWith('http://') || resource.startsWith('https://')) {
|
|
27
|
+
const response = await fetch(resource);
|
|
28
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
29
|
+
return Buffer.from(arrayBuffer);
|
|
30
|
+
}
|
|
31
|
+
// Check if it's base64
|
|
32
|
+
if (resource.startsWith('data:')) {
|
|
33
|
+
const base64Data = resource.split(',')[1];
|
|
34
|
+
return Buffer.from(base64Data, 'base64');
|
|
35
|
+
}
|
|
36
|
+
// Assume it's a file path
|
|
37
|
+
return (0, promises_1.readFile)(resource);
|
|
38
|
+
}
|
|
39
|
+
throw new TypeError('Invalid resource type');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Resolves a Base64Resolvable to a base64 string
|
|
43
|
+
* @param resource The resource to resolve
|
|
44
|
+
* @param mimeType The MIME type for the data URI
|
|
45
|
+
*/
|
|
46
|
+
static async resolveBase64(resource, mimeType = 'image/png') {
|
|
47
|
+
const buffer = await this.resolveBuffer(resource);
|
|
48
|
+
return `data:${mimeType};base64,${buffer.toString('base64')}`;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolves a file to a name and buffer
|
|
52
|
+
* @param resource The file resource
|
|
53
|
+
*/
|
|
54
|
+
static async resolveFile(resource) {
|
|
55
|
+
if (typeof resource === 'object' && 'attachment' in resource) {
|
|
56
|
+
const buffer = await this.resolveBuffer(resource.attachment);
|
|
57
|
+
const name = resource.name ?? 'file';
|
|
58
|
+
return { name, data: buffer };
|
|
59
|
+
}
|
|
60
|
+
const buffer = await this.resolveBuffer(resource);
|
|
61
|
+
const name = typeof resource === 'string' ? (0, path_1.basename)(resource) : 'file';
|
|
62
|
+
return { name, data: buffer };
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Resolves multiple files
|
|
66
|
+
* @param resources The file resources
|
|
67
|
+
*/
|
|
68
|
+
static async resolveFiles(resources) {
|
|
69
|
+
return Promise.all(resources.map(r => this.resolveFile(r)));
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolves a color to a number
|
|
73
|
+
* @param color The color to resolve
|
|
74
|
+
*/
|
|
75
|
+
static resolveColor(color) {
|
|
76
|
+
if (color === null)
|
|
77
|
+
return null;
|
|
78
|
+
if (typeof color === 'number') {
|
|
79
|
+
if (color < 0 || color > 0xFFFFFF)
|
|
80
|
+
throw new RangeError('Color must be between 0 and 16777215');
|
|
81
|
+
return color;
|
|
82
|
+
}
|
|
83
|
+
if (typeof color === 'string') {
|
|
84
|
+
if (color.startsWith('#')) {
|
|
85
|
+
return parseInt(color.slice(1), 16);
|
|
86
|
+
}
|
|
87
|
+
// Named colors
|
|
88
|
+
const namedColors = {
|
|
89
|
+
default: 0x000000,
|
|
90
|
+
white: 0xFFFFFF,
|
|
91
|
+
aqua: 0x1ABC9C,
|
|
92
|
+
green: 0x57F287,
|
|
93
|
+
blue: 0x3498DB,
|
|
94
|
+
yellow: 0xFEE75C,
|
|
95
|
+
purple: 0x9B59B6,
|
|
96
|
+
fuchsia: 0xEB459E,
|
|
97
|
+
gold: 0xF1C40F,
|
|
98
|
+
orange: 0xE67E22,
|
|
99
|
+
red: 0xED4245,
|
|
100
|
+
grey: 0x95A5A6,
|
|
101
|
+
navy: 0x34495E,
|
|
102
|
+
blurple: 0x5865F2,
|
|
103
|
+
};
|
|
104
|
+
const lower = color.toLowerCase();
|
|
105
|
+
if (lower in namedColors)
|
|
106
|
+
return namedColors[lower];
|
|
107
|
+
return parseInt(color, 16);
|
|
108
|
+
}
|
|
109
|
+
if (Array.isArray(color)) {
|
|
110
|
+
return (color[0] << 16) + (color[1] << 8) + color[2];
|
|
111
|
+
}
|
|
112
|
+
throw new TypeError('Invalid color type');
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Resolves a string to a snowflake ID
|
|
116
|
+
* @param value The value to resolve
|
|
117
|
+
*/
|
|
118
|
+
static resolveSnowflake(value) {
|
|
119
|
+
if (typeof value === 'object' && 'id' in value) {
|
|
120
|
+
return String(value.id);
|
|
121
|
+
}
|
|
122
|
+
return String(value);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Resolves an image to a base64 data URI
|
|
126
|
+
* @param image The image to resolve
|
|
127
|
+
*/
|
|
128
|
+
static async resolveImage(image) {
|
|
129
|
+
const buffer = await this.resolveBuffer(image);
|
|
130
|
+
// Detect MIME type from magic bytes
|
|
131
|
+
let mimeType = 'image/png';
|
|
132
|
+
if (buffer[0] === 0xFF && buffer[1] === 0xD8) {
|
|
133
|
+
mimeType = 'image/jpeg';
|
|
134
|
+
}
|
|
135
|
+
else if (buffer[0] === 0x47 && buffer[1] === 0x49 && buffer[2] === 0x46) {
|
|
136
|
+
mimeType = 'image/gif';
|
|
137
|
+
}
|
|
138
|
+
else if (buffer[0] === 0x52 && buffer[1] === 0x49 && buffer[2] === 0x46 && buffer[3] === 0x46) {
|
|
139
|
+
mimeType = 'image/webp';
|
|
140
|
+
}
|
|
141
|
+
return `data:${mimeType};base64,${buffer.toString('base64')}`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
exports.DataResolver = DataResolver;
|
|
145
|
+
exports.default = DataResolver;
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL0RhdGFSZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILDBDQUF1QztBQUN2QywrQkFBZ0M7QUFLaEM7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFDdkI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsUUFBMEI7UUFDbkQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBRS9DLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDakMsNEJBQTRCO1lBQzVCLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUN2SCxPQUFPLElBQUEsbUJBQVEsRUFBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBRUQsc0JBQXNCO1lBQ3RCLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RFLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN2QyxNQUFNLFdBQVcsR0FBRyxNQUFNLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFFRCx1QkFBdUI7WUFDdkIsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE1B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QUFDO1FBQzNCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDN0MsUUFBUSxHQUFHLFlBQVksQ0FBQztRQUMxQixDQUFDO2FBQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzFFLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDekIsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hHLFFBQVEsR0FBRyxZQUFZLENBQUM7UUFDMUIsQ0FBQztRQUVELE9BQU8sUUFBUSxRQUFRLFdBQVcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQS9JRCxvQ0ErSUM7QUFFRCxrQkFBZSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRGF0YSByZXNvbHZlciB1dGlsaXRpZXMgZm9yIGhhbmRsaW5nIHZhcmlvdXMgZGF0YSB0eXBlc1xyXG4gKi9cclxuXHJcbmltcG9ydCB7IHJlYWRGaWxlIH0gZnJvbSAnZnMvcHJvbWlzZXMnO1xyXG5pbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ3BhdGgnO1xyXG5cclxuZXhwb3J0IHR5cGUgQnVmZmVyUmVzb2x2YWJsZSA9IEJ1ZmZlciB8IHN0cmluZztcclxuZXhwb3J0IHR5cGUgQmFzZTY0UmVzb2x2YWJsZSA9IEJ1ZmZlciB8IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBSZXNvbHZlcyB2YXJpb3VzIGRhdGEgdHlwZXMgdG8gdXNhYmxlIGZvcm1hdHNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXRhUmVzb2x2ZXIge1xyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIGEgQnVmZmVyUmVzb2x2YWJsZSB0byBhIEJ1ZmZlclxyXG4gICAqIEBwYXJhbSByZXNvdXJjZSBUaGUgcmVzb3VyY2UgdG8gcmVzb2x2ZVxyXG4gICAqL1xyXG4gIHN0YXRpYyBhc3luYyByZXNvbHZlQnVmZmVyKHJlc291cmNlOiBCdWZmZXJSZXNvbHZhYmxlKTogUHJvbWlzZTxCdWZmZXI+IHtcclxuICAgIGlmIChCdWZmZXIuaXNCdWZmZXIocmVzb3VyY2UpKSByZXR1cm4gcmVzb3VyY2U7XHJcbiAgICBcclxuICAgIGlmICh0eXBlb2YgcmVzb3VyY2UgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIC8vIENoZWNrIGlmIGl0J3MgYSBmaWxlIHBhdGhcclxuICAgICAgaWYgKHJlc291cmNlLnN0YXJ0c1dpdGgoJy8nKSB8fCByZXNvdXJjZS5zdGFydHNXaXRoKCcuLycpIHx8IHJlc291cmNlLnN0YXJ0c1dpdGgoJy4uLycpIHx8IC9eW2EtekEtWl06Ly50ZXN0KHJlc291cmNlKSkge1xyXG4gICAgICAgIHJldHVybiByZWFkRmlsZShyZXNvdXJjZSk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIENoZWNrIGlmIGl0J3MgYSBVUkxcclxuICAgICAgaWYgKHJlc291cmNlLnN0YXJ0c1dpdGgoJ2h0dHA6Ly8nKSB8fCByZXNvdXJjZS5zdGFydHNXaXRoKCdodHRwczovLycpKSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXNvdXJjZSk7XHJcbiAgICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpO1xyXG4gICAgICAgIHJldHVybiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlcik7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIC8vIENoZWNrIGlmIGl0J3MgYmFzZTY0XHJcbiAgICAgIGlmIChyZXNvdXJjZS5zdGFydHNXaXRoKCdkYXRhOicpKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZTY0RGF0YSA9IHJlc291cmNlLnNwbGl0KCcsJylbMV07XHJcbiAgICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGJhc2U2NERhdGEsICdiYXNlNjQnKTtcclxuICAgICAgfVxyXG4gICAgICBcclxuICAgICAgLy8gQXNzdW1lIGl0J3MgYSBmaWxlIHBhdGhcclxuICAgICAgcmV0dXJuIHJlYWRGaWxlKHJlc291cmNlKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCByZXNvdXJjZSB0eXBlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyBhIEJhc2U2NFJlc29sdmFibGUgdG8gYSBiYXNlNjQgc3RyaW5nXHJcbiAgICogQHBhcmFtIHJlc291cmNlIFRoZSByZXNvdXJjZSB0byByZXNvbHZlXHJcbiAgICogQHBhcmFtIG1pbWVUeXBlIFRoZSBNSU1FIHR5cGUgZm9yIHRoZSBkYXRhIFVSSVxyXG4gICAqL1xyXG4gIHN0YXRpYyBhc3luYyByZXNvbHZlQmFzZTY0KHJlc291cmNlOiBCYXNlNjRSZXNvbHZhYmxlLCBtaW1lVHlwZSA9ICdpbWFnZS9wbmcnKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHRoaXMucmVzb2x2ZUJ1ZmZlcihyZXNvdXJjZSk7XHJcbiAgICByZXR1cm4gYGRhdGE6JHttaW1lVHlwZX07YmFzZTY0LCR7YnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKX1gO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzb2x2ZXMgYSBmaWxlIHRvIGEgbmFtZSBhbmQgYnVmZmVyXHJcbiAgICogQHBhcmFtIHJlc291cmNlIFRoZSBmaWxlIHJlc291cmNlXHJcbiAgICovXHJcbiAgc3RhdGljIGFzeW5jIHJlc29sdmVGaWxlKHJlc291cmNlOiBCdWZmZXJSZXNvbHZhYmxlIHwgeyBuYW1lPzogc3RyaW5nOyBhdHRhY2htZW50OiBCdWZmZXJSZXNvbHZhYmxlIH0pOiBQcm9taXNlPHsgbmFtZTogc3RyaW5nOyBkYXRhOiBCdWZmZXIgfT4ge1xyXG4gICAgaWYgKHR5cGVvZiByZXNvdXJjZSA9PT0gJ29iamVjdCcgJiYgJ2F0dGFjaG1lbnQnIGluIHJlc291cmNlKSB7XHJcbiAgICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IHRoaXMucmVzb2x2ZUJ1ZmZlcihyZXNvdXJjZS5hdHRhY2htZW50KTtcclxuICAgICAgY29uc3QgbmFtZSA9IHJlc291cmNlLm5hbWUgPz8gJ2ZpbGUnO1xyXG4gICAgICByZXR1cm4geyBuYW1lLCBkYXRhOiBidWZmZXIgfTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5yZXNvbHZlQnVmZmVyKHJlc291cmNlKTtcclxuICAgIGNvbnN0IG5hbWUgPSB0eXBlb2YgcmVzb3VyY2UgPT09ICdzdHJpbmcnID8gYmFzZW5hbWUocmVzb3VyY2UpIDogJ2ZpbGUnO1xyXG4gICAgcmV0dXJuIHsgbmFtZSwgZGF0YTogYnVmZmVyIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyBtdWx0aXBsZSBmaWxlc1xyXG4gICAqIEBwYXJhbSByZXNvdXJjZXMgVGhlIGZpbGUgcmVzb3VyY2VzXHJcbiAgICovXHJcbiAgc3RhdGljIGFzeW5jIHJlc29sdmVGaWxlcyhyZXNvdXJjZXM6IChCdWZmZXJSZXNvbHZhYmxlIHwgeyBuYW1lPzogc3RyaW5nOyBhdHRhY2htZW50OiBCdWZmZXJSZXNvbHZhYmxlIH0pW10pOiBQcm9taXNlPHsgbmFtZTogc3RyaW5nOyBkYXRhOiBCdWZmZXIgfVtdPiB7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVzb3VyY2VzLm1hcChyID0+IHRoaXMucmVzb2x2ZUZpbGUocikpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIGEgY29sb3IgdG8gYSBudW1iZXJcclxuICAgKiBAcGFyYW0gY29sb3IgVGhlIGNvbG9yIHRvIHJlc29sdmVcclxuICAgKi9cclxuICBzdGF0aWMgcmVzb2x2ZUNvbG9yKGNvbG9yOiBudW1iZXIgfCBzdHJpbmcgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBudWxsKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICBpZiAoY29sb3IgPT09IG51bGwpIHJldHVybiBudWxsO1xyXG4gICAgXHJcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnbnVtYmVyJykge1xyXG4gICAgICBpZiAoY29sb3IgPCAwIHx8IGNvbG9yID4gMHhGRkZGRkYpIHRocm93IG5ldyBSYW5nZUVycm9yKCdDb2xvciBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMTY3NzcyMTUnKTtcclxuICAgICAgcmV0dXJuIGNvbG9yO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAodHlwZW9mIGNvbG9yID09PSAnc3RyaW5nJykge1xyXG4gICAgICBpZiAoY29sb3Iuc3RhcnRzV2l0aCgnIycpKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGNvbG9yLnNsaWNlKDEpLCAxNik7XHJcbiAgICAgIH1cclxuICAgICAgLy8gTmFtZWQgY29sb3JzXHJcbiAgICAgIGNvbnN0IG5hbWVkQ29sb3JzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xyXG4gICAgICAgIGRlZmF1bHQ6IDB4MDAwMDAwLFxyXG4gICAgICAgIHdoaXRlOiAweEZGRkZGRixcclxuICAgICAgICBhcXVhOiAweDFBQkM5QyxcclxuICAgICAgICBncmVlbjogMHg1N0YyODcsXHJcbiAgICAgICAgYmx1ZTogMHgzNDk4REIsXHJcbiAgICAgICAgeWVsbG93OiAweEZFRTc1QyxcclxuICAgICAgICBwdXJwbGU6IDB4OUI1OUI2LFxyXG4gICAgICAgIGZ1Y2hzaWE6IDB4RUI0NTlFLFxyXG4gICAgICAgIGdvbGQ6IDB4RjFDNDBGLFxyXG4gICAgICAgIG9yYW5nZTogMHhFNjdFMjIsXHJcbiAgICAgICAgcmVkOiAweEVENDI0NSxcclxuICAgICAgICBncmV5OiAweDk1QTVBNixcclxuICAgICAgICBuYXZ5OiAweDM0NDk1RSxcclxuICAgICAgICBibHVycGxlOiAweDU4NjVGMixcclxuICAgICAgfTtcclxuICAgICAgY29uc3QgbG93ZXIgPSBjb2xvci50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBpZiAobG93ZXIgaW4gbmFtZWRDb2xvcnMpIHJldHVybiBuYW1lZENvbG9yc1tsb3dlcl07XHJcbiAgICAgIHJldHVybiBwYXJzZUludChjb2xvciwgMTYpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjb2xvcikpIHtcclxuICAgICAgcmV0dXJuIChjb2xvclswXSA8PCAxNikgKyAoY29sb3JbMV0gPDwgOCkgKyBjb2xvclsyXTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBjb2xvciB0eXBlJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyBhIHN0cmluZyB0byBhIHNub3dmbGFrZSBJRFxyXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgdmFsdWUgdG8gcmVzb2x2ZVxyXG4gICAqL1xyXG4gIHN0YXRpYyByZXNvbHZlU25vd2ZsYWtlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCB7IGlkOiBzdHJpbmcgfCBudW1iZXIgfSk6IHN0cmluZyB7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAnaWQnIGluIHZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBTdHJpbmcodmFsdWUuaWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyBhbiBpbWFnZSB0byBhIGJhc2U2NCBkYXRhIFVSSVxyXG4gICAqIEBwYXJhbSBpbWFnZSBUaGUgaW1hZ2UgdG8gcmVzb2x2ZVxyXG4gICAqL1xyXG4gIHN0YXRpYyBhc3luYyByZXNvbHZlSW1hZ2UoaW1hZ2U6IEJ1ZmZlclJlc29sdmFibGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgdGhpcy5yZXNvbHZlQnVmZmVyKGltYWdlKTtcclxuICAgIFxyXG4gICAgLy8gRGV0ZWN0IE1JTUUgdHlwZSBmcm9tIG1hZ2ljIGJ5dGVzXHJcbiAgICBsZXQgbWltZVR5cGUgPSAnaW1hZ2UvcG5nJztcclxuICAgIGlmIChidWZmZXJbMF0gPT09IDB4RkYgJiYgYnVmZmVyWzFdID09PSAweEQ4KSB7XHJcbiAgICAgIG1pbWVUeXBlID0gJ2ltYWdlL2pwZWcnO1xyXG4gICAgfSBlbHNlIGlmIChidWZmZXJbMF0gPT09IDB4NDcgJiYgYnVmZmVyWzFdID09PSAweDQ5ICYmIGJ1ZmZlclsyXSA9PT0gMHg0Nikge1xyXG4gICAgICBtaW1lVHlwZSA9ICdpbWFnZS9naWYnO1xyXG4gICAgfSBlbHNlIGlmIChidWZmZXJbMF0gPT09IDB4NTIgJiYgYnVmZmVyWzFdID09PSAweDQ5ICYmIGJ1ZmZlclsyXSA9PT0gMHg0NiAmJiBidWZmZXJbM10gPT09IDB4NDYpIHtcclxuICAgICAgbWltZVR5cGUgPSAnaW1hZ2Uvd2VicCc7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHJldHVybiBgZGF0YToke21pbWVUeXBlfTtiYXNlNjQsJHtidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpfWA7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBEYXRhUmVzb2x2ZXI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Formatters for markdown and mentions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Formats a user mention
|
|
6
|
+
* @param userId The user ID to mention
|
|
7
|
+
*/
|
|
8
|
+
export declare function userMention(userId: string | number): string;
|
|
9
|
+
/**
|
|
10
|
+
* Formats a channel mention
|
|
11
|
+
* @param channelId The channel ID to mention
|
|
12
|
+
*/
|
|
13
|
+
export declare function channelMention(channelId: string | number): string;
|
|
14
|
+
/**
|
|
15
|
+
* Formats a role mention
|
|
16
|
+
* @param roleId The role ID to mention
|
|
17
|
+
*/
|
|
18
|
+
export declare function roleMention(roleId: string | number): string;
|
|
19
|
+
/**
|
|
20
|
+
* Formats a custom emoji
|
|
21
|
+
* @param emojiId The emoji ID
|
|
22
|
+
* @param name The emoji name
|
|
23
|
+
* @param animated Whether the emoji is animated
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatEmoji(emojiId: string | number, name: string, animated?: boolean): string;
|
|
26
|
+
/**
|
|
27
|
+
* Formats text as bold
|
|
28
|
+
* @param text The text to format
|
|
29
|
+
*/
|
|
30
|
+
export declare function bold(text: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Formats text as italic
|
|
33
|
+
* @param text The text to format
|
|
34
|
+
*/
|
|
35
|
+
export declare function italic(text: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* Formats text as underline
|
|
38
|
+
* @param text The text to format
|
|
39
|
+
*/
|
|
40
|
+
export declare function underline(text: string): string;
|
|
41
|
+
/**
|
|
42
|
+
* Formats text as strikethrough
|
|
43
|
+
* @param text The text to format
|
|
44
|
+
*/
|
|
45
|
+
export declare function strikethrough(text: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Formats text as spoiler
|
|
48
|
+
* @param text The text to format
|
|
49
|
+
*/
|
|
50
|
+
export declare function spoiler(text: string): string;
|
|
51
|
+
/**
|
|
52
|
+
* Formats text as inline code
|
|
53
|
+
* @param text The text to format
|
|
54
|
+
*/
|
|
55
|
+
export declare function inlineCode(text: string): string;
|
|
56
|
+
/**
|
|
57
|
+
* Formats text as a code block
|
|
58
|
+
* @param text The text to format
|
|
59
|
+
* @param language The language for syntax highlighting
|
|
60
|
+
*/
|
|
61
|
+
export declare function codeBlock(text: string, language?: string): string;
|
|
62
|
+
/**
|
|
63
|
+
* Formats text as a block quote
|
|
64
|
+
* @param text The text to format
|
|
65
|
+
*/
|
|
66
|
+
export declare function blockQuote(text: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* Formats text as a single-line quote
|
|
69
|
+
* @param text The text to format
|
|
70
|
+
*/
|
|
71
|
+
export declare function quote(text: string): string;
|
|
72
|
+
/**
|
|
73
|
+
* Formats a URL as a hyperlink
|
|
74
|
+
* @param text The text to display
|
|
75
|
+
* @param url The URL to link to
|
|
76
|
+
* @param title Optional title for the link
|
|
77
|
+
*/
|
|
78
|
+
export declare function hyperlink(text: string, url: string, title?: string): string;
|
|
79
|
+
/**
|
|
80
|
+
* Formats a URL to hide the embed
|
|
81
|
+
* @param url The URL to format
|
|
82
|
+
*/
|
|
83
|
+
export declare function hideLinkEmbed(url: string): string;
|
|
84
|
+
/**
|
|
85
|
+
* Time format styles
|
|
86
|
+
*/
|
|
87
|
+
export declare enum TimestampStyles {
|
|
88
|
+
/** Short time format (e.g., 16:20) */
|
|
89
|
+
ShortTime = "t",
|
|
90
|
+
/** Long time format (e.g., 16:20:30) */
|
|
91
|
+
LongTime = "T",
|
|
92
|
+
/** Short date format (e.g., 20/04/2021) */
|
|
93
|
+
ShortDate = "d",
|
|
94
|
+
/** Long date format (e.g., 20 April 2021) */
|
|
95
|
+
LongDate = "D",
|
|
96
|
+
/** Short date/time format (e.g., 20 April 2021 16:20) */
|
|
97
|
+
ShortDateTime = "f",
|
|
98
|
+
/** Long date/time format (e.g., Tuesday, 20 April 2021 16:20) */
|
|
99
|
+
LongDateTime = "F",
|
|
100
|
+
/** Relative time format (e.g., 2 months ago) */
|
|
101
|
+
RelativeTime = "R"
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Formats a timestamp
|
|
105
|
+
* @param timestamp The timestamp (Date, number in ms, or seconds)
|
|
106
|
+
* @param style The style to use
|
|
107
|
+
*/
|
|
108
|
+
export declare function time(timestamp: Date | number, style?: TimestampStyles): string;
|
|
109
|
+
/**
|
|
110
|
+
* Formats a heading (H1)
|
|
111
|
+
* @param text The text to format
|
|
112
|
+
*/
|
|
113
|
+
export declare function heading(text: string, level?: 1 | 2 | 3): string;
|
|
114
|
+
/**
|
|
115
|
+
* Formats an unordered list
|
|
116
|
+
* @param items The items to list
|
|
117
|
+
*/
|
|
118
|
+
export declare function unorderedList(items: string[]): string;
|
|
119
|
+
/**
|
|
120
|
+
* Formats an ordered list
|
|
121
|
+
* @param items The items to list
|
|
122
|
+
*/
|
|
123
|
+
export declare function orderedList(items: string[]): string;
|
|
124
|
+
export declare const Formatters: {
|
|
125
|
+
userMention: typeof userMention;
|
|
126
|
+
channelMention: typeof channelMention;
|
|
127
|
+
roleMention: typeof roleMention;
|
|
128
|
+
formatEmoji: typeof formatEmoji;
|
|
129
|
+
bold: typeof bold;
|
|
130
|
+
italic: typeof italic;
|
|
131
|
+
underline: typeof underline;
|
|
132
|
+
strikethrough: typeof strikethrough;
|
|
133
|
+
spoiler: typeof spoiler;
|
|
134
|
+
inlineCode: typeof inlineCode;
|
|
135
|
+
codeBlock: typeof codeBlock;
|
|
136
|
+
blockQuote: typeof blockQuote;
|
|
137
|
+
quote: typeof quote;
|
|
138
|
+
hyperlink: typeof hyperlink;
|
|
139
|
+
hideLinkEmbed: typeof hideLinkEmbed;
|
|
140
|
+
time: typeof time;
|
|
141
|
+
heading: typeof heading;
|
|
142
|
+
unorderedList: typeof unorderedList;
|
|
143
|
+
orderedList: typeof orderedList;
|
|
144
|
+
TimestampStyles: typeof TimestampStyles;
|
|
145
|
+
};
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Formatters for markdown and mentions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Formatters = exports.TimestampStyles = void 0;
|
|
7
|
+
exports.userMention = userMention;
|
|
8
|
+
exports.channelMention = channelMention;
|
|
9
|
+
exports.roleMention = roleMention;
|
|
10
|
+
exports.formatEmoji = formatEmoji;
|
|
11
|
+
exports.bold = bold;
|
|
12
|
+
exports.italic = italic;
|
|
13
|
+
exports.underline = underline;
|
|
14
|
+
exports.strikethrough = strikethrough;
|
|
15
|
+
exports.spoiler = spoiler;
|
|
16
|
+
exports.inlineCode = inlineCode;
|
|
17
|
+
exports.codeBlock = codeBlock;
|
|
18
|
+
exports.blockQuote = blockQuote;
|
|
19
|
+
exports.quote = quote;
|
|
20
|
+
exports.hyperlink = hyperlink;
|
|
21
|
+
exports.hideLinkEmbed = hideLinkEmbed;
|
|
22
|
+
exports.time = time;
|
|
23
|
+
exports.heading = heading;
|
|
24
|
+
exports.unorderedList = unorderedList;
|
|
25
|
+
exports.orderedList = orderedList;
|
|
26
|
+
/**
|
|
27
|
+
* Formats a user mention
|
|
28
|
+
* @param userId The user ID to mention
|
|
29
|
+
*/
|
|
30
|
+
function userMention(userId) {
|
|
31
|
+
return `<@${userId}>`;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Formats a channel mention
|
|
35
|
+
* @param channelId The channel ID to mention
|
|
36
|
+
*/
|
|
37
|
+
function channelMention(channelId) {
|
|
38
|
+
return `<#${channelId}>`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Formats a role mention
|
|
42
|
+
* @param roleId The role ID to mention
|
|
43
|
+
*/
|
|
44
|
+
function roleMention(roleId) {
|
|
45
|
+
return `<@&${roleId}>`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Formats a custom emoji
|
|
49
|
+
* @param emojiId The emoji ID
|
|
50
|
+
* @param name The emoji name
|
|
51
|
+
* @param animated Whether the emoji is animated
|
|
52
|
+
*/
|
|
53
|
+
function formatEmoji(emojiId, name, animated = false) {
|
|
54
|
+
return `<${animated ? 'a' : ''}:${name}:${emojiId}>`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Formats text as bold
|
|
58
|
+
* @param text The text to format
|
|
59
|
+
*/
|
|
60
|
+
function bold(text) {
|
|
61
|
+
return `**${text}**`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Formats text as italic
|
|
65
|
+
* @param text The text to format
|
|
66
|
+
*/
|
|
67
|
+
function italic(text) {
|
|
68
|
+
return `*${text}*`;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Formats text as underline
|
|
72
|
+
* @param text The text to format
|
|
73
|
+
*/
|
|
74
|
+
function underline(text) {
|
|
75
|
+
return `__${text}__`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Formats text as strikethrough
|
|
79
|
+
* @param text The text to format
|
|
80
|
+
*/
|
|
81
|
+
function strikethrough(text) {
|
|
82
|
+
return `~~${text}~~`;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Formats text as spoiler
|
|
86
|
+
* @param text The text to format
|
|
87
|
+
*/
|
|
88
|
+
function spoiler(text) {
|
|
89
|
+
return `||${text}||`;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Formats text as inline code
|
|
93
|
+
* @param text The text to format
|
|
94
|
+
*/
|
|
95
|
+
function inlineCode(text) {
|
|
96
|
+
return `\`${text}\``;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Formats text as a code block
|
|
100
|
+
* @param text The text to format
|
|
101
|
+
* @param language The language for syntax highlighting
|
|
102
|
+
*/
|
|
103
|
+
function codeBlock(text, language) {
|
|
104
|
+
return `\`\`\`${language ?? ''}\n${text}\n\`\`\``;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Formats text as a block quote
|
|
108
|
+
* @param text The text to format
|
|
109
|
+
*/
|
|
110
|
+
function blockQuote(text) {
|
|
111
|
+
return `>>> ${text}`;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Formats text as a single-line quote
|
|
115
|
+
* @param text The text to format
|
|
116
|
+
*/
|
|
117
|
+
function quote(text) {
|
|
118
|
+
return `> ${text}`;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Formats a URL as a hyperlink
|
|
122
|
+
* @param text The text to display
|
|
123
|
+
* @param url The URL to link to
|
|
124
|
+
* @param title Optional title for the link
|
|
125
|
+
*/
|
|
126
|
+
function hyperlink(text, url, title) {
|
|
127
|
+
return title ? `[${text}](${url} "${title}")` : `[${text}](${url})`;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Formats a URL to hide the embed
|
|
131
|
+
* @param url The URL to format
|
|
132
|
+
*/
|
|
133
|
+
function hideLinkEmbed(url) {
|
|
134
|
+
return `<${url}>`;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Time format styles
|
|
138
|
+
*/
|
|
139
|
+
var TimestampStyles;
|
|
140
|
+
(function (TimestampStyles) {
|
|
141
|
+
/** Short time format (e.g., 16:20) */
|
|
142
|
+
TimestampStyles["ShortTime"] = "t";
|
|
143
|
+
/** Long time format (e.g., 16:20:30) */
|
|
144
|
+
TimestampStyles["LongTime"] = "T";
|
|
145
|
+
/** Short date format (e.g., 20/04/2021) */
|
|
146
|
+
TimestampStyles["ShortDate"] = "d";
|
|
147
|
+
/** Long date format (e.g., 20 April 2021) */
|
|
148
|
+
TimestampStyles["LongDate"] = "D";
|
|
149
|
+
/** Short date/time format (e.g., 20 April 2021 16:20) */
|
|
150
|
+
TimestampStyles["ShortDateTime"] = "f";
|
|
151
|
+
/** Long date/time format (e.g., Tuesday, 20 April 2021 16:20) */
|
|
152
|
+
TimestampStyles["LongDateTime"] = "F";
|
|
153
|
+
/** Relative time format (e.g., 2 months ago) */
|
|
154
|
+
TimestampStyles["RelativeTime"] = "R";
|
|
155
|
+
})(TimestampStyles || (exports.TimestampStyles = TimestampStyles = {}));
|
|
156
|
+
/**
|
|
157
|
+
* Formats a timestamp
|
|
158
|
+
* @param timestamp The timestamp (Date, number in ms, or seconds)
|
|
159
|
+
* @param style The style to use
|
|
160
|
+
*/
|
|
161
|
+
function time(timestamp, style) {
|
|
162
|
+
const seconds = timestamp instanceof Date
|
|
163
|
+
? Math.floor(timestamp.getTime() / 1000)
|
|
164
|
+
: typeof timestamp === 'number' && timestamp > 1e12
|
|
165
|
+
? Math.floor(timestamp / 1000)
|
|
166
|
+
: timestamp;
|
|
167
|
+
return style ? `<t:${seconds}:${style}>` : `<t:${seconds}>`;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Formats a heading (H1)
|
|
171
|
+
* @param text The text to format
|
|
172
|
+
*/
|
|
173
|
+
function heading(text, level = 1) {
|
|
174
|
+
return `${'#'.repeat(level)} ${text}`;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Formats an unordered list
|
|
178
|
+
* @param items The items to list
|
|
179
|
+
*/
|
|
180
|
+
function unorderedList(items) {
|
|
181
|
+
return items.map(item => `- ${item}`).join('\n');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Formats an ordered list
|
|
185
|
+
* @param items The items to list
|
|
186
|
+
*/
|
|
187
|
+
function orderedList(items) {
|
|
188
|
+
return items.map((item, i) => `${i + 1}. ${item}`).join('\n');
|
|
189
|
+
}
|
|
190
|
+
// Export all formatters as a namespace too (DJS compatibility)
|
|
191
|
+
exports.Formatters = {
|
|
192
|
+
userMention,
|
|
193
|
+
channelMention,
|
|
194
|
+
roleMention,
|
|
195
|
+
formatEmoji,
|
|
196
|
+
bold,
|
|
197
|
+
italic,
|
|
198
|
+
underline,
|
|
199
|
+
strikethrough,
|
|
200
|
+
spoiler,
|
|
201
|
+
inlineCode,
|
|
202
|
+
codeBlock,
|
|
203
|
+
blockQuote,
|
|
204
|
+
quote,
|
|
205
|
+
hyperlink,
|
|
206
|
+
hideLinkEmbed,
|
|
207
|
+
time,
|
|
208
|
+
heading,
|
|
209
|
+
unorderedList,
|
|
210
|
+
orderedList,
|
|
211
|
+
TimestampStyles,
|
|
212
|
+
};
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRm9ybWF0dGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9Gb3JtYXR0ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7O0FBTUgsa0NBRUM7QUFNRCx3Q0FFQztBQU1ELGtDQUVDO0FBUUQsa0NBRUM7QUFNRCxvQkFFQztBQU1ELHdCQUVDO0FBTUQsOEJBRUM7QUFNRCxzQ0FFQztBQU1ELDBCQUVDO0FBTUQsZ0NBRUM7QUFPRCw4QkFFQztBQU1ELGdDQUVDO0FBTUQsc0JBRUM7QUFRRCw4QkFFQztBQU1ELHNDQUVDO0FBMkJELG9CQVFDO0FBTUQsMEJBRUM7QUFNRCxzQ0FFQztBQU1ELGtDQUVDO0FBdExEOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxNQUF1QjtJQUNqRCxPQUFPLEtBQUssTUFBTSxHQUFHLENBQUM7QUFDeEIsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxTQUEwQjtJQUN2RCxPQUFPLEtBQUssU0FBUyxHQUFHLENBQUM7QUFDM0IsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxNQUF1QjtJQUNqRCxPQUFPLE1BQU0sTUFBTSxHQUFHLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE9BQXdCLEVBQUUsSUFBWSxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBQ2xGLE9BQU8sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsQ0FBQztBQUN2RCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsSUFBSSxDQUFDLElBQVk7SUFDL0IsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixNQUFNLENBQUMsSUFBWTtJQUNqQyxPQUFPLElBQUksSUFBSSxH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Q0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFlO0lBQ3pDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsK0RBQStEO0FBQ2xELFFBQUEsVUFBVSxHQUFHO0lBQ3hCLFdBQVc7SUFDWCxjQUFjO0lBQ2QsV0FBVztJQUNYLFdBQVc7SUFDWCxJQUFJO0lBQ0osTUFBTTtJQUNOLFNBQVM7SUFDVCxhQUFhO0lBQ2IsT0FBTztJQUNQLFVBQVU7SUFDVixTQUFTO0lBQ1QsVUFBVTtJQUNWLEtBQUs7SUFDTCxTQUFTO0lBQ1QsYUFBYTtJQUNiLElBQUk7SUFDSixPQUFPO0lBQ1AsYUFBYTtJQUNiLFdBQVc7SUFDWCxlQUFlO0NBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogRm9ybWF0dGVycyBmb3IgbWFya2Rvd24gYW5kIG1lbnRpb25zXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgYSB1c2VyIG1lbnRpb25cclxuICogQHBhcmFtIHVzZXJJZCBUaGUgdXNlciBJRCB0byBtZW50aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdXNlck1lbnRpb24odXNlcklkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgPEAke3VzZXJJZH0+YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgYSBjaGFubmVsIG1lbnRpb25cclxuICogQHBhcmFtIGNoYW5uZWxJZCBUaGUgY2hhbm5lbCBJRCB0byBtZW50aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY2hhbm5lbE1lbnRpb24oY2hhbm5lbElkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgPCMke2NoYW5uZWxJZH0+YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgYSByb2xlIG1lbnRpb25cclxuICogQHBhcmFtIHJvbGVJZCBUaGUgcm9sZSBJRCB0byBtZW50aW9uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcm9sZU1lbnRpb24ocm9sZUlkOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgPEAmJHtyb2xlSWR9PmA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIGEgY3VzdG9tIGVtb2ppXHJcbiAqIEBwYXJhbSBlbW9qaUlkIFRoZSBlbW9qaSBJRFxyXG4gKiBAcGFyYW0gbmFtZSBUaGUgZW1vamkgbmFtZVxyXG4gKiBAcGFyYW0gYW5pbWF0ZWQgV2hldGhlciB0aGUgZW1vamkgaXMgYW5pbWF0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRFbW9qaShlbW9qaUlkOiBzdHJpbmcgfCBudW1iZXIsIG5hbWU6IHN0cmluZywgYW5pbWF0ZWQgPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGA8JHthbmltYXRlZCA/ICdhJyA6ICcnfToke25hbWV9OiR7ZW1vamlJZH0+YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBib2xkXHJcbiAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGZvcm1hdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGJvbGQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYCoqJHt0ZXh0fSoqYDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBpdGFsaWNcclxuICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gZm9ybWF0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXRhbGljKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGAqJHt0ZXh0fSpgO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyB0ZXh0IGFzIHVuZGVybGluZVxyXG4gKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBmb3JtYXRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1bmRlcmxpbmUodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYF9fJHt0ZXh0fV9fYDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBzdHJpa2V0aHJvdWdoXHJcbiAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGZvcm1hdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHN0cmlrZXRocm91Z2godGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYH5+JHt0ZXh0fX5+YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBzcG9pbGVyXHJcbiAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGZvcm1hdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNwb2lsZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYHx8JHt0ZXh0fXx8YDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBpbmxpbmUgY29kZVxyXG4gKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBmb3JtYXRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbmxpbmVDb2RlKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGBcXGAke3RleHR9XFxgYDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGV4dCBhcyBhIGNvZGUgYmxvY2tcclxuICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gZm9ybWF0XHJcbiAqIEBwYXJhbSBsYW5ndWFnZSBUaGUgbGFuZ3VhZ2UgZm9yIHN5bnRheCBoaWdobGlnaHRpbmdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjb2RlQmxvY2sodGV4dDogc3RyaW5nLCBsYW5ndWFnZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGBcXGBcXGBcXGAke2xhbmd1YWdlID8/ICcnfVxcbiR7dGV4dH1cXG5cXGBcXGBcXGBgO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyB0ZXh0IGFzIGEgYmxvY2sgcXVvdGVcclxuICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gZm9ybWF0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYmxvY2tRdW90ZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgPj4+ICR7dGV4dH1gO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyB0ZXh0IGFzIGEgc2luZ2xlLWxpbmUgcXVvdGVcclxuICogQHBhcmFtIHRleHQgVGhlIHRleHQgdG8gZm9ybWF0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcXVvdGUodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICByZXR1cm4gYD4gJHt0ZXh0fWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIGEgVVJMIGFzIGEgaHlwZXJsaW5rXHJcbiAqIEBwYXJhbSB0ZXh0IFRoZSB0ZXh0IHRvIGRpc3BsYXlcclxuICogQHBhcmFtIHVybCBUaGUgVVJMIHRvIGxpbmsgdG9cclxuICogQHBhcmFtIHRpdGxlIE9wdGlvbmFsIHRpdGxlIGZvciB0aGUgbGlua1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGh5cGVybGluayh0ZXh0OiBzdHJpbmcsIHVybDogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHRpdGxlID8gYFske3RleHR9XSgke3VybH0gXCIke3RpdGxlfVwiKWAgOiBgWyR7dGV4dH1dKCR7dXJsfSlgO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyBhIFVSTCB0byBoaWRlIHRoZSBlbWJlZFxyXG4gKiBAcGFyYW0gdXJsIFRoZSBVUkwgdG8gZm9ybWF0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaGlkZUxpbmtFbWJlZCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgcmV0dXJuIGA8JHt1cmx9PmA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaW1lIGZvcm1hdCBzdHlsZXNcclxuICovXHJcbmV4cG9ydCBlbnVtIFRpbWVzdGFtcFN0eWxlcyB7XHJcbiAgLyoqIFNob3J0IHRpbWUgZm9ybWF0IChlLmcuLCAxNjoyMCkgKi9cclxuICBTaG9ydFRpbWUgPSAndCcsXHJcbiAgLyoqIExvbmcgdGltZSBmb3JtYXQgKGUuZy4sIDE2OjIwOjMwKSAqL1xyXG4gIExvbmdUaW1lID0gJ1QnLFxyXG4gIC8qKiBTaG9ydCBkYXRlIGZvcm1hdCAoZS5nLiwgMjAvMDQvMjAyMSkgKi9cclxuICBTaG9ydERhdGUgPSAnZCcsXHJcbiAgLyoqIExvbmcgZGF0ZSBmb3JtYXQgKGUuZy4sIDIwIEFwcmlsIDIwMjEpICovXHJcbiAgTG9uZ0RhdGUgPSAnRCcsXHJcbiAgLyoqIFNob3J0IGRhdGUvdGltZSBmb3JtYXQgKGUuZy4sIDIwIEFwcmlsIDIwMjEgMTY6MjApICovXHJcbiAgU2hvcnREYXRlVGltZSA9ICdmJyxcclxuICAvKiogTG9uZyBkYXRlL3RpbWUgZm9ybWF0IChlLmcuLCBUdWVzZGF5LCAyMCBBcHJpbCAyMDIxIDE2OjIwKSAqL1xyXG4gIExvbmdEYXRlVGltZSA9ICdGJyxcclxuICAvKiogUmVsYXRpdmUgdGltZSBmb3JtYXQgKGUuZy4sIDIgbW9udGhzIGFnbykgKi9cclxuICBSZWxhdGl2ZVRpbWUgPSAnUicsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIGEgdGltZXN0YW1wXHJcbiAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCAoRGF0ZSwgbnVtYmVyIGluIG1zLCBvciBzZWNvbmRzKVxyXG4gKiBAcGFyYW0gc3R5bGUgVGhlIHN0eWxlIHRvIHVzZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRpbWUodGltZXN0YW1wOiBEYXRlIHwgbnVtYmVyLCBzdHlsZT86IFRpbWVzdGFtcFN0eWxlcyk6IHN0cmluZyB7XHJcbiAgY29uc3Qgc2Vjb25kcyA9IHRpbWVzdGFtcCBpbnN0YW5jZW9mIERhdGUgXHJcbiAgICA/IE1hdGguZmxvb3IodGltZXN0YW1wLmdldFRpbWUoKSAvIDEwMDApIFxyXG4gICAgOiB0eXBlb2YgdGltZXN0YW1wID09PSAnbnVtYmVyJyAmJiB0aW1lc3RhbXAgPiAxZTEyIFxyXG4gICAgICA/IE1hdGguZmxvb3IodGltZXN0YW1wIC8gMTAwMCkgXHJcbiAgICAgIDogdGltZXN0YW1wO1xyXG4gIFxyXG4gIHJldHVybiBzdHlsZSA/IGA8dDoke3NlY29uZHN9OiR7c3R5bGV9PmAgOiBgPHQ6JHtzZWNvbmRzfT5gO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyBhIGhlYWRpbmcgKEgxKVxyXG4gKiBAcGFyYW0gdGV4dCBUaGUgdGV4dCB0byBmb3JtYXRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBoZWFkaW5nKHRleHQ6IHN0cmluZywgbGV2ZWw6IDEgfCAyIHwgMyA9IDEpOiBzdHJpbmcge1xyXG4gIHJldHVybiBgJHsnIycucmVwZWF0KGxldmVsKX0gJHt0ZXh0fWA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGb3JtYXRzIGFuIHVub3JkZXJlZCBsaXN0XHJcbiAqIEBwYXJhbSBpdGVtcyBUaGUgaXRlbXMgdG8gbGlzdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHVub3JkZXJlZExpc3QoaXRlbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICByZXR1cm4gaXRlbXMubWFwKGl0ZW0gPT4gYC0gJHtpdGVtfWApLmpvaW4oJ1xcbicpO1xyXG59XHJcblxyXG4vKipcclxuICogRm9ybWF0cyBhbiBvcmRlcmVkIGxpc3RcclxuICogQHBhcmFtIGl0ZW1zIFRoZSBpdGVtcyB0byBsaXN0XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb3JkZXJlZExpc3QoaXRlbXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICByZXR1cm4gaXRlbXMubWFwKChpdGVtLCBpKSA9PiBgJHtpICsgMX0uICR7aXRlbX1gKS5qb2luKCdcXG4nKTtcclxufVxyXG5cclxuLy8gRXhwb3J0IGFsbCBmb3JtYXR0ZXJzIGFzIGEgbmFtZXNwYWNlIHRvbyAoREpTIGNvbXBhdGliaWxpdHkpXHJcbmV4cG9ydCBjb25zdCBGb3JtYXR0ZXJzID0ge1xyXG4gIHVzZXJNZW50aW9uLFxyXG4gIGNoYW5uZWxNZW50aW9uLFxyXG4gIHJvbGVNZW50aW9uLFxyXG4gIGZvcm1hdEVtb2ppLFxyXG4gIGJvbGQsXHJcbiAgaXRhbGljLFxyXG4gIHVuZGVybGluZSxcclxuICBzdHJpa2V0aHJvdWdoLFxyXG4gIHNwb2lsZXIsXHJcbiAgaW5saW5lQ29kZSxcclxuICBjb2RlQmxvY2ssXHJcbiAgYmxvY2tRdW90ZSxcclxuICBxdW90ZSxcclxuICBoeXBlcmxpbmssXHJcbiAgaGlkZUxpbmtFbWJlZCxcclxuICB0aW1lLFxyXG4gIGhlYWRpbmcsXHJcbiAgdW5vcmRlcmVkTGlzdCxcclxuICBvcmRlcmVkTGlzdCxcclxuICBUaW1lc3RhbXBTdHlsZXMsXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intents BitField for calculating gateway intents
|
|
3
|
+
*/
|
|
4
|
+
import { BitField, BitFieldResolvable } from './BitField';
|
|
5
|
+
/**
|
|
6
|
+
* Intent flag names
|
|
7
|
+
*/
|
|
8
|
+
export type IntentFlagsString = keyof typeof IntentsBitField.Flags;
|
|
9
|
+
/**
|
|
10
|
+
* Gateway Intent Bits
|
|
11
|
+
*/
|
|
12
|
+
export declare const GatewayIntentBits: {
|
|
13
|
+
readonly Guilds: number;
|
|
14
|
+
readonly GuildMembers: number;
|
|
15
|
+
readonly GuildModeration: number;
|
|
16
|
+
readonly GuildEmojisAndStickers: number;
|
|
17
|
+
readonly GuildIntegrations: number;
|
|
18
|
+
readonly GuildWebhooks: number;
|
|
19
|
+
readonly GuildInvites: number;
|
|
20
|
+
readonly GuildVoiceStates: number;
|
|
21
|
+
readonly GuildPresences: number;
|
|
22
|
+
readonly GuildMessages: number;
|
|
23
|
+
readonly GuildMessageReactions: number;
|
|
24
|
+
readonly GuildMessageTyping: number;
|
|
25
|
+
readonly DirectMessages: number;
|
|
26
|
+
readonly DirectMessageReactions: number;
|
|
27
|
+
readonly DirectMessageTyping: number;
|
|
28
|
+
readonly MessageContent: number;
|
|
29
|
+
readonly GuildScheduledEvents: number;
|
|
30
|
+
readonly AutoModerationConfiguration: number;
|
|
31
|
+
readonly AutoModerationExecution: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* All non-privileged intents
|
|
35
|
+
*/
|
|
36
|
+
export declare const IntentsAll: number;
|
|
37
|
+
/**
|
|
38
|
+
* Privileged intents that require approval
|
|
39
|
+
*/
|
|
40
|
+
export declare const PrivilegedIntents: number;
|
|
41
|
+
/**
|
|
42
|
+
* Data structure for gateway intents
|
|
43
|
+
*/
|
|
44
|
+
export declare class IntentsBitField extends BitField<IntentFlagsString, number> {
|
|
45
|
+
static Flags: {
|
|
46
|
+
readonly Guilds: number;
|
|
47
|
+
readonly GuildMembers: number;
|
|
48
|
+
readonly GuildModeration: number;
|
|
49
|
+
readonly GuildEmojisAndStickers: number;
|
|
50
|
+
readonly GuildIntegrations: number;
|
|
51
|
+
readonly GuildWebhooks: number;
|
|
52
|
+
readonly GuildInvites: number;
|
|
53
|
+
readonly GuildVoiceStates: number;
|
|
54
|
+
readonly GuildPresences: number;
|
|
55
|
+
readonly GuildMessages: number;
|
|
56
|
+
readonly GuildMessageReactions: number;
|
|
57
|
+
readonly GuildMessageTyping: number;
|
|
58
|
+
readonly DirectMessages: number;
|
|
59
|
+
readonly DirectMessageReactions: number;
|
|
60
|
+
readonly DirectMessageTyping: number;
|
|
61
|
+
readonly MessageContent: number;
|
|
62
|
+
readonly GuildScheduledEvents: number;
|
|
63
|
+
readonly AutoModerationConfiguration: number;
|
|
64
|
+
readonly AutoModerationExecution: number;
|
|
65
|
+
};
|
|
66
|
+
static DefaultBit: number;
|
|
67
|
+
constructor(bits?: BitFieldResolvable<IntentFlagsString, number>);
|
|
68
|
+
/**
|
|
69
|
+
* Check if any privileged intents are enabled
|
|
70
|
+
*/
|
|
71
|
+
hasPrivileged(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get all privileged intents that are enabled
|
|
74
|
+
*/
|
|
75
|
+
getPrivileged(): IntentFlagsString[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Calculate intents from an array of intent names or values
|
|
79
|
+
*/
|
|
80
|
+
export declare function calculateIntents(intents: (IntentFlagsString | number)[]): number;
|
|
81
|
+
/**
|
|
82
|
+
* Get all intent names from a bitfield value
|
|
83
|
+
*/
|
|
84
|
+
export declare function resolveIntents(bits: number): IntentFlagsString[];
|
|
85
|
+
export default IntentsBitField;
|