@jubbio/core 1.3.3 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Client.js +50 -10
- package/dist/rest/REST.d.ts +1 -0
- package/dist/rest/REST.js +1 -1
- package/dist/structures/Channel.d.ts +1 -1
- package/dist/structures/Channel.js +11 -4
- package/dist/structures/Guild.d.ts +1 -1
- package/dist/structures/Guild.js +7 -3
- package/dist/structures/Interaction.js +11 -3
- package/dist/structures/Message.d.ts +2 -0
- package/dist/structures/Message.js +13 -33
- package/package.json +4 -14
- package/dist/cjs/Client.d.ts +0 -157
- package/dist/cjs/Client.js +0 -640
- package/dist/cjs/builders/ActionRowBuilder.d.ts +0 -53
- package/dist/cjs/builders/ActionRowBuilder.js +0 -68
- package/dist/cjs/builders/ButtonBuilder.d.ts +0 -77
- package/dist/cjs/builders/ButtonBuilder.js +0 -96
- package/dist/cjs/builders/EmbedBuilder.d.ts +0 -157
- package/dist/cjs/builders/EmbedBuilder.js +0 -208
- package/dist/cjs/builders/ModalBuilder.d.ts +0 -122
- package/dist/cjs/builders/ModalBuilder.js +0 -162
- package/dist/cjs/builders/SelectMenuBuilder.d.ts +0 -123
- package/dist/cjs/builders/SelectMenuBuilder.js +0 -165
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +0 -197
- package/dist/cjs/builders/SlashCommandBuilder.js +0 -324
- package/dist/cjs/builders/index.d.ts +0 -9
- package/dist/cjs/builders/index.js +0 -26
- package/dist/cjs/enums.d.ts +0 -191
- package/dist/cjs/enums.js +0 -211
- package/dist/cjs/index.d.ts +0 -25
- package/dist/cjs/index.js +0 -130
- package/dist/cjs/managers/BaseManager.d.ts +0 -69
- package/dist/cjs/managers/BaseManager.js +0 -106
- package/dist/cjs/managers/ChannelManager.d.ts +0 -95
- package/dist/cjs/managers/ChannelManager.js +0 -205
- package/dist/cjs/managers/GuildMemberManager.d.ts +0 -74
- package/dist/cjs/managers/GuildMemberManager.js +0 -157
- package/dist/cjs/managers/RoleManager.d.ts +0 -84
- package/dist/cjs/managers/RoleManager.js +0 -207
- package/dist/cjs/managers/index.d.ts +0 -7
- package/dist/cjs/managers/index.js +0 -24
- package/dist/cjs/rest/REST.d.ts +0 -527
- package/dist/cjs/rest/REST.js +0 -904
- package/dist/cjs/rest/index.d.ts +0 -1
- package/dist/cjs/rest/index.js +0 -18
- package/dist/cjs/sharding/ShardingManager.d.ts +0 -179
- package/dist/cjs/sharding/ShardingManager.js +0 -375
- package/dist/cjs/sharding/index.d.ts +0 -4
- package/dist/cjs/sharding/index.js +0 -21
- package/dist/cjs/structures/Channel.d.ts +0 -122
- package/dist/cjs/structures/Channel.js +0 -240
- package/dist/cjs/structures/Collection.d.ts +0 -53
- package/dist/cjs/structures/Collection.js +0 -115
- package/dist/cjs/structures/Guild.d.ts +0 -59
- package/dist/cjs/structures/Guild.js +0 -94
- package/dist/cjs/structures/GuildMember.d.ts +0 -174
- package/dist/cjs/structures/GuildMember.js +0 -311
- package/dist/cjs/structures/Interaction.d.ts +0 -245
- package/dist/cjs/structures/Interaction.js +0 -450
- package/dist/cjs/structures/Message.d.ts +0 -98
- package/dist/cjs/structures/Message.js +0 -195
- package/dist/cjs/structures/User.d.ts +0 -37
- package/dist/cjs/structures/User.js +0 -65
- package/dist/cjs/structures/index.d.ts +0 -7
- package/dist/cjs/structures/index.js +0 -25
- package/dist/cjs/structures.d.ts +0 -1
- package/dist/cjs/structures.js +0 -19
- package/dist/cjs/types.d.ts +0 -255
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/utils/BitField.d.ts +0 -66
- package/dist/cjs/utils/BitField.js +0 -138
- package/dist/cjs/utils/Collection.d.ts +0 -116
- package/dist/cjs/utils/Collection.js +0 -265
- package/dist/cjs/utils/Collector.d.ts +0 -152
- package/dist/cjs/utils/Collector.js +0 -314
- package/dist/cjs/utils/DataResolver.d.ts +0 -61
- package/dist/cjs/utils/DataResolver.js +0 -146
- package/dist/cjs/utils/Formatters.d.ts +0 -145
- package/dist/cjs/utils/Formatters.js +0 -213
- package/dist/cjs/utils/IntentsBitField.d.ts +0 -85
- package/dist/cjs/utils/IntentsBitField.js +0 -99
- package/dist/cjs/utils/Partials.d.ts +0 -104
- package/dist/cjs/utils/Partials.js +0 -148
- package/dist/cjs/utils/PermissionsBitField.d.ts +0 -118
- package/dist/cjs/utils/PermissionsBitField.js +0 -145
- package/dist/cjs/utils/SnowflakeUtil.d.ts +0 -63
- package/dist/cjs/utils/SnowflakeUtil.js +0 -93
- package/dist/cjs/utils/Sweepers.d.ts +0 -119
- package/dist/cjs/utils/Sweepers.js +0 -249
- package/dist/cjs/utils/index.d.ts +0 -13
- package/dist/cjs/utils/index.js +0 -30
- package/dist/esm/Client.js +0 -634
- package/dist/esm/builders/ActionRowBuilder.js +0 -64
- package/dist/esm/builders/ButtonBuilder.js +0 -92
- package/dist/esm/builders/EmbedBuilder.js +0 -204
- package/dist/esm/builders/ModalBuilder.js +0 -157
- package/dist/esm/builders/SelectMenuBuilder.js +0 -161
- package/dist/esm/builders/SlashCommandBuilder.js +0 -311
- package/dist/esm/builders/index.js +0 -10
- package/dist/esm/enums.js +0 -208
- package/dist/esm/index.js +0 -34
- package/dist/esm/managers/BaseManager.js +0 -100
- package/dist/esm/managers/ChannelManager.js +0 -200
- package/dist/esm/managers/GuildMemberManager.js +0 -153
- package/dist/esm/managers/RoleManager.js +0 -203
- package/dist/esm/managers/index.js +0 -8
- package/dist/esm/rest/REST.js +0 -900
- package/dist/esm/rest/index.js +0 -2
- package/dist/esm/sharding/ShardingManager.js +0 -366
- package/dist/esm/sharding/index.js +0 -5
- package/dist/esm/structures/Channel.js +0 -232
- package/dist/esm/structures/Collection.js +0 -111
- package/dist/esm/structures/Guild.js +0 -90
- package/dist/esm/structures/GuildMember.js +0 -306
- package/dist/esm/structures/Interaction.js +0 -438
- package/dist/esm/structures/Message.js +0 -191
- package/dist/esm/structures/User.js +0 -61
- package/dist/esm/structures/index.js +0 -9
- package/dist/esm/structures.js +0 -3
- package/dist/esm/types.js +0 -2
- package/dist/esm/utils/BitField.js +0 -134
- package/dist/esm/utils/Collection.js +0 -261
- package/dist/esm/utils/Collector.js +0 -305
- package/dist/esm/utils/DataResolver.js +0 -142
- package/dist/esm/utils/Formatters.js +0 -191
- package/dist/esm/utils/IntentsBitField.js +0 -93
- package/dist/esm/utils/Partials.js +0 -137
- package/dist/esm/utils/PermissionsBitField.js +0 -141
- package/dist/esm/utils/SnowflakeUtil.js +0 -89
- package/dist/esm/utils/Sweepers.js +0 -245
- package/dist/esm/utils/index.js +0 -14
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Collectors for awaiting messages, reactions, and interactions
|
|
3
|
-
* API compatible with Discord.js Collectors
|
|
4
|
-
*/
|
|
5
|
-
import { EventEmitter } from 'events';
|
|
6
|
-
import { Collection } from './Collection';
|
|
7
|
-
export interface CollectorOptions<T> {
|
|
8
|
-
/** How long to run the collector for in milliseconds */
|
|
9
|
-
time?: number;
|
|
10
|
-
/** How long to wait for the next item in milliseconds */
|
|
11
|
-
idle?: number;
|
|
12
|
-
/** Maximum number of items to collect */
|
|
13
|
-
max?: number;
|
|
14
|
-
/** Maximum number of items to process */
|
|
15
|
-
maxProcessed?: number;
|
|
16
|
-
/** Filter function */
|
|
17
|
-
filter?: (item: T, collected: Collection<string, T>) => boolean | Promise<boolean>;
|
|
18
|
-
/** Whether to dispose of items when the collector ends */
|
|
19
|
-
dispose?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface CollectorResetTimerOptions {
|
|
22
|
-
time?: number;
|
|
23
|
-
idle?: number;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Abstract base class for collectors
|
|
27
|
-
*/
|
|
28
|
-
export declare abstract class Collector<K extends string, V> extends EventEmitter {
|
|
29
|
-
/** The client that instantiated this collector */
|
|
30
|
-
readonly client: any;
|
|
31
|
-
/** The items collected */
|
|
32
|
-
readonly collected: Collection<K, V>;
|
|
33
|
-
/** Whether the collector has ended */
|
|
34
|
-
ended: boolean;
|
|
35
|
-
/** The reason the collector ended */
|
|
36
|
-
endReason: string | null;
|
|
37
|
-
/** Filter function */
|
|
38
|
-
filter: (item: V, collected: Collection<K, V>) => boolean | Promise<boolean>;
|
|
39
|
-
/** Collector options */
|
|
40
|
-
options: CollectorOptions<V>;
|
|
41
|
-
/** Number of items processed */
|
|
42
|
-
private _processedCount;
|
|
43
|
-
/** Timeout for time limit */
|
|
44
|
-
private _timeout;
|
|
45
|
-
/** Timeout for idle limit */
|
|
46
|
-
private _idleTimeout;
|
|
47
|
-
constructor(client: any, options?: CollectorOptions<V>);
|
|
48
|
-
/**
|
|
49
|
-
* Handle an item being collected
|
|
50
|
-
*/
|
|
51
|
-
handleCollect(item: V): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Handle an item being disposed
|
|
54
|
-
*/
|
|
55
|
-
handleDispose(item: V): void;
|
|
56
|
-
/**
|
|
57
|
-
* Get the key for an item
|
|
58
|
-
*/
|
|
59
|
-
abstract collect(item: V): K | null;
|
|
60
|
-
/**
|
|
61
|
-
* Get the key for disposing an item
|
|
62
|
-
*/
|
|
63
|
-
abstract dispose(item: V): K | null;
|
|
64
|
-
/**
|
|
65
|
-
* Stop the collector
|
|
66
|
-
*/
|
|
67
|
-
stop(reason?: string): void;
|
|
68
|
-
/**
|
|
69
|
-
* Reset the collector's timer
|
|
70
|
-
*/
|
|
71
|
-
resetTimer(options?: CollectorResetTimerOptions): void;
|
|
72
|
-
/**
|
|
73
|
-
* Check the end conditions
|
|
74
|
-
*/
|
|
75
|
-
checkEnd(): boolean;
|
|
76
|
-
/**
|
|
77
|
-
* Get the next item
|
|
78
|
-
*/
|
|
79
|
-
get next(): Promise<V>;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Message collector options
|
|
83
|
-
*/
|
|
84
|
-
export interface MessageCollectorOptions extends CollectorOptions<any> {
|
|
85
|
-
/** Channel to collect messages from */
|
|
86
|
-
channelId?: string;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Collector for messages
|
|
90
|
-
*/
|
|
91
|
-
export declare class MessageCollector extends Collector<string, any> {
|
|
92
|
-
readonly channelId: string;
|
|
93
|
-
private readonly messageHandler;
|
|
94
|
-
constructor(client: any, channelId: string, options?: MessageCollectorOptions);
|
|
95
|
-
collect(message: any): string | null;
|
|
96
|
-
dispose(message: any): string | null;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Interaction collector options
|
|
100
|
-
*/
|
|
101
|
-
export interface InteractionCollectorOptions extends CollectorOptions<any> {
|
|
102
|
-
/** Channel to collect interactions from */
|
|
103
|
-
channelId?: string;
|
|
104
|
-
/** Guild to collect interactions from */
|
|
105
|
-
guildId?: string;
|
|
106
|
-
/** Message to collect interactions from */
|
|
107
|
-
messageId?: string;
|
|
108
|
-
/** Interaction types to collect */
|
|
109
|
-
interactionType?: number | number[];
|
|
110
|
-
/** Component types to collect */
|
|
111
|
-
componentType?: number | number[];
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Collector for interactions (buttons, select menus, etc.)
|
|
115
|
-
*/
|
|
116
|
-
export declare class InteractionCollector extends Collector<string, any> {
|
|
117
|
-
readonly channelId?: string;
|
|
118
|
-
readonly guildId?: string;
|
|
119
|
-
readonly messageId?: string;
|
|
120
|
-
readonly interactionType?: number[];
|
|
121
|
-
readonly componentType?: number[];
|
|
122
|
-
private readonly interactionHandler;
|
|
123
|
-
constructor(client: any, options?: InteractionCollectorOptions);
|
|
124
|
-
collect(interaction: any): string | null;
|
|
125
|
-
dispose(interaction: any): string | null;
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Reaction collector options
|
|
129
|
-
*/
|
|
130
|
-
export interface ReactionCollectorOptions extends CollectorOptions<any> {
|
|
131
|
-
/** Message to collect reactions from */
|
|
132
|
-
messageId: string;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Collector for reactions
|
|
136
|
-
*/
|
|
137
|
-
export declare class ReactionCollector extends Collector<string, any> {
|
|
138
|
-
readonly messageId: string;
|
|
139
|
-
private readonly reactionHandler;
|
|
140
|
-
constructor(client: any, messageId: string, options: ReactionCollectorOptions);
|
|
141
|
-
collect(reaction: any): string | null;
|
|
142
|
-
dispose(reaction: any): string | null;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Await messages helper
|
|
146
|
-
*/
|
|
147
|
-
export declare function awaitMessages(client: any, channelId: string, options?: MessageCollectorOptions): Promise<Collection<string, any>>;
|
|
148
|
-
/**
|
|
149
|
-
* Await reactions helper
|
|
150
|
-
*/
|
|
151
|
-
export declare function awaitReactions(client: any, messageId: string, options: ReactionCollectorOptions): Promise<Collection<string, any>>;
|
|
152
|
-
export default Collector;
|
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Collectors for awaiting messages, reactions, and interactions
|
|
4
|
-
* API compatible with Discord.js Collectors
|
|
5
|
-
*/
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.ReactionCollector = exports.InteractionCollector = exports.MessageCollector = exports.Collector = void 0;
|
|
8
|
-
exports.awaitMessages = awaitMessages;
|
|
9
|
-
exports.awaitReactions = awaitReactions;
|
|
10
|
-
const events_1 = require("events");
|
|
11
|
-
const Collection_1 = require("./Collection");
|
|
12
|
-
/**
|
|
13
|
-
* Abstract base class for collectors
|
|
14
|
-
*/
|
|
15
|
-
class Collector extends events_1.EventEmitter {
|
|
16
|
-
/** The client that instantiated this collector */
|
|
17
|
-
client;
|
|
18
|
-
/** The items collected */
|
|
19
|
-
collected = new Collection_1.Collection();
|
|
20
|
-
/** Whether the collector has ended */
|
|
21
|
-
ended = false;
|
|
22
|
-
/** The reason the collector ended */
|
|
23
|
-
endReason = null;
|
|
24
|
-
/** Filter function */
|
|
25
|
-
filter;
|
|
26
|
-
/** Collector options */
|
|
27
|
-
options;
|
|
28
|
-
/** Number of items processed */
|
|
29
|
-
_processedCount = 0;
|
|
30
|
-
/** Timeout for time limit */
|
|
31
|
-
_timeout = null;
|
|
32
|
-
/** Timeout for idle limit */
|
|
33
|
-
_idleTimeout = null;
|
|
34
|
-
constructor(client, options = {}) {
|
|
35
|
-
super();
|
|
36
|
-
this.client = client;
|
|
37
|
-
this.options = options;
|
|
38
|
-
this.filter = options.filter ?? (() => true);
|
|
39
|
-
this.handleCollect = this.handleCollect.bind(this);
|
|
40
|
-
this.handleDispose = this.handleDispose.bind(this);
|
|
41
|
-
if (options.time) {
|
|
42
|
-
this._timeout = setTimeout(() => this.stop('time'), options.time);
|
|
43
|
-
}
|
|
44
|
-
if (options.idle) {
|
|
45
|
-
this._idleTimeout = setTimeout(() => this.stop('idle'), options.idle);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Handle an item being collected
|
|
50
|
-
*/
|
|
51
|
-
async handleCollect(item) {
|
|
52
|
-
if (this.ended)
|
|
53
|
-
return;
|
|
54
|
-
this._processedCount++;
|
|
55
|
-
const filterResult = await this.filter(item, this.collected);
|
|
56
|
-
if (!filterResult)
|
|
57
|
-
return;
|
|
58
|
-
const key = this.collect(item);
|
|
59
|
-
if (key === null)
|
|
60
|
-
return;
|
|
61
|
-
this.collected.set(key, item);
|
|
62
|
-
this.emit('collect', item);
|
|
63
|
-
// Reset idle timer
|
|
64
|
-
if (this._idleTimeout) {
|
|
65
|
-
clearTimeout(this._idleTimeout);
|
|
66
|
-
this._idleTimeout = setTimeout(() => this.stop('idle'), this.options.idle);
|
|
67
|
-
}
|
|
68
|
-
// Check limits
|
|
69
|
-
if (this.options.max && this.collected.size >= this.options.max) {
|
|
70
|
-
this.stop('limit');
|
|
71
|
-
}
|
|
72
|
-
if (this.options.maxProcessed && this._processedCount >= this.options.maxProcessed) {
|
|
73
|
-
this.stop('processedLimit');
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Handle an item being disposed
|
|
78
|
-
*/
|
|
79
|
-
handleDispose(item) {
|
|
80
|
-
if (!this.options.dispose)
|
|
81
|
-
return;
|
|
82
|
-
const key = this.dispose(item);
|
|
83
|
-
if (key === null)
|
|
84
|
-
return;
|
|
85
|
-
if (this.collected.has(key)) {
|
|
86
|
-
this.collected.delete(key);
|
|
87
|
-
this.emit('dispose', item);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Stop the collector
|
|
92
|
-
*/
|
|
93
|
-
stop(reason = 'user') {
|
|
94
|
-
if (this.ended)
|
|
95
|
-
return;
|
|
96
|
-
this.ended = true;
|
|
97
|
-
this.endReason = reason;
|
|
98
|
-
if (this._timeout) {
|
|
99
|
-
clearTimeout(this._timeout);
|
|
100
|
-
this._timeout = null;
|
|
101
|
-
}
|
|
102
|
-
if (this._idleTimeout) {
|
|
103
|
-
clearTimeout(this._idleTimeout);
|
|
104
|
-
this._idleTimeout = null;
|
|
105
|
-
}
|
|
106
|
-
this.emit('end', this.collected, reason);
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Reset the collector's timer
|
|
110
|
-
*/
|
|
111
|
-
resetTimer(options = {}) {
|
|
112
|
-
if (this._timeout) {
|
|
113
|
-
clearTimeout(this._timeout);
|
|
114
|
-
this._timeout = null;
|
|
115
|
-
}
|
|
116
|
-
if (this._idleTimeout) {
|
|
117
|
-
clearTimeout(this._idleTimeout);
|
|
118
|
-
this._idleTimeout = null;
|
|
119
|
-
}
|
|
120
|
-
if (options.time ?? this.options.time) {
|
|
121
|
-
this._timeout = setTimeout(() => this.stop('time'), options.time ?? this.options.time);
|
|
122
|
-
}
|
|
123
|
-
if (options.idle ?? this.options.idle) {
|
|
124
|
-
this._idleTimeout = setTimeout(() => this.stop('idle'), options.idle ?? this.options.idle);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* Check the end conditions
|
|
129
|
-
*/
|
|
130
|
-
checkEnd() {
|
|
131
|
-
const reason = this.endReason;
|
|
132
|
-
if (reason) {
|
|
133
|
-
this.stop(reason);
|
|
134
|
-
return true;
|
|
135
|
-
}
|
|
136
|
-
return false;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get the next item
|
|
140
|
-
*/
|
|
141
|
-
get next() {
|
|
142
|
-
return new Promise((resolve, reject) => {
|
|
143
|
-
if (this.ended) {
|
|
144
|
-
reject(new Error('Collector has ended'));
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const cleanup = () => {
|
|
148
|
-
this.removeListener('collect', onCollect);
|
|
149
|
-
this.removeListener('end', onEnd);
|
|
150
|
-
};
|
|
151
|
-
const onCollect = (item) => {
|
|
152
|
-
cleanup();
|
|
153
|
-
resolve(item);
|
|
154
|
-
};
|
|
155
|
-
const onEnd = () => {
|
|
156
|
-
cleanup();
|
|
157
|
-
reject(new Error('Collector ended'));
|
|
158
|
-
};
|
|
159
|
-
this.on('collect', onCollect);
|
|
160
|
-
this.on('end', onEnd);
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
exports.Collector = Collector;
|
|
165
|
-
/**
|
|
166
|
-
* Collector for messages
|
|
167
|
-
*/
|
|
168
|
-
class MessageCollector extends Collector {
|
|
169
|
-
channelId;
|
|
170
|
-
messageHandler;
|
|
171
|
-
constructor(client, channelId, options = {}) {
|
|
172
|
-
super(client, options);
|
|
173
|
-
this.channelId = channelId;
|
|
174
|
-
// Get bot's user ID to filter out bot's own messages
|
|
175
|
-
const botUserId = client.user?.id;
|
|
176
|
-
this.messageHandler = (message) => {
|
|
177
|
-
if (message.channel_id === this.channelId || message.channelId === this.channelId) {
|
|
178
|
-
// Automatically filter out bot's own messages
|
|
179
|
-
const authorId = message.author?.id || message.author_id;
|
|
180
|
-
if (botUserId && authorId === botUserId)
|
|
181
|
-
return;
|
|
182
|
-
// Also filter by application_id (bot messages have this)
|
|
183
|
-
if (message.application_id || message.applicationId)
|
|
184
|
-
return;
|
|
185
|
-
this.handleCollect(message);
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
client.on('messageCreate', this.messageHandler);
|
|
189
|
-
this.once('end', () => {
|
|
190
|
-
client.removeListener('messageCreate', this.messageHandler);
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
collect(message) {
|
|
194
|
-
return message.id ?? null;
|
|
195
|
-
}
|
|
196
|
-
dispose(message) {
|
|
197
|
-
return message.id ?? null;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
exports.MessageCollector = MessageCollector;
|
|
201
|
-
/**
|
|
202
|
-
* Collector for interactions (buttons, select menus, etc.)
|
|
203
|
-
*/
|
|
204
|
-
class InteractionCollector extends Collector {
|
|
205
|
-
channelId;
|
|
206
|
-
guildId;
|
|
207
|
-
messageId;
|
|
208
|
-
interactionType;
|
|
209
|
-
componentType;
|
|
210
|
-
interactionHandler;
|
|
211
|
-
constructor(client, options = {}) {
|
|
212
|
-
super(client, options);
|
|
213
|
-
this.channelId = options.channelId;
|
|
214
|
-
this.guildId = options.guildId;
|
|
215
|
-
this.messageId = options.messageId;
|
|
216
|
-
this.interactionType = options.interactionType
|
|
217
|
-
? Array.isArray(options.interactionType) ? options.interactionType : [options.interactionType]
|
|
218
|
-
: undefined;
|
|
219
|
-
this.componentType = options.componentType
|
|
220
|
-
? Array.isArray(options.componentType) ? options.componentType : [options.componentType]
|
|
221
|
-
: undefined;
|
|
222
|
-
this.interactionHandler = (interaction) => {
|
|
223
|
-
// Filter by channel
|
|
224
|
-
if (this.channelId && interaction.channelId !== this.channelId)
|
|
225
|
-
return;
|
|
226
|
-
// Filter by guild
|
|
227
|
-
if (this.guildId && interaction.guildId !== this.guildId)
|
|
228
|
-
return;
|
|
229
|
-
// Filter by message
|
|
230
|
-
if (this.messageId && interaction.message?.id !== this.messageId)
|
|
231
|
-
return;
|
|
232
|
-
// Filter by interaction type
|
|
233
|
-
if (this.interactionType && !this.interactionType.includes(interaction.type))
|
|
234
|
-
return;
|
|
235
|
-
// Filter by component type
|
|
236
|
-
if (this.componentType && interaction.componentType && !this.componentType.includes(interaction.componentType))
|
|
237
|
-
return;
|
|
238
|
-
this.handleCollect(interaction);
|
|
239
|
-
};
|
|
240
|
-
client.on('interactionCreate', this.interactionHandler);
|
|
241
|
-
this.once('end', () => {
|
|
242
|
-
client.removeListener('interactionCreate', this.interactionHandler);
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
collect(interaction) {
|
|
246
|
-
return interaction.id ?? null;
|
|
247
|
-
}
|
|
248
|
-
dispose(interaction) {
|
|
249
|
-
return interaction.id ?? null;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
exports.InteractionCollector = InteractionCollector;
|
|
253
|
-
/**
|
|
254
|
-
* Collector for reactions
|
|
255
|
-
*/
|
|
256
|
-
class ReactionCollector extends Collector {
|
|
257
|
-
messageId;
|
|
258
|
-
reactionHandler;
|
|
259
|
-
constructor(client, messageId, options) {
|
|
260
|
-
super(client, options);
|
|
261
|
-
this.messageId = messageId;
|
|
262
|
-
this.reactionHandler = (reaction) => {
|
|
263
|
-
if (reaction.message_id === this.messageId || reaction.messageId === this.messageId) {
|
|
264
|
-
this.handleCollect(reaction);
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
client.on('messageReactionAdd', this.reactionHandler);
|
|
268
|
-
this.once('end', () => {
|
|
269
|
-
client.removeListener('messageReactionAdd', this.reactionHandler);
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
collect(reaction) {
|
|
273
|
-
// Key is emoji identifier
|
|
274
|
-
return reaction.emoji?.id ?? reaction.emoji?.name ?? null;
|
|
275
|
-
}
|
|
276
|
-
dispose(reaction) {
|
|
277
|
-
return reaction.emoji?.id ?? reaction.emoji?.name ?? null;
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
exports.ReactionCollector = ReactionCollector;
|
|
281
|
-
/**
|
|
282
|
-
* Await messages helper
|
|
283
|
-
*/
|
|
284
|
-
function awaitMessages(client, channelId, options = {}) {
|
|
285
|
-
return new Promise((resolve, reject) => {
|
|
286
|
-
const collector = new MessageCollector(client, channelId, options);
|
|
287
|
-
collector.once('end', (collected, reason) => {
|
|
288
|
-
if (options.max && collected.size < options.max) {
|
|
289
|
-
reject(new Error(`Collector ended with reason: ${reason}`));
|
|
290
|
-
}
|
|
291
|
-
else {
|
|
292
|
-
resolve(collected);
|
|
293
|
-
}
|
|
294
|
-
});
|
|
295
|
-
});
|
|
296
|
-
}
|
|
297
|
-
/**
|
|
298
|
-
* Await reactions helper
|
|
299
|
-
*/
|
|
300
|
-
function awaitReactions(client, messageId, options) {
|
|
301
|
-
return new Promise((resolve, reject) => {
|
|
302
|
-
const collector = new ReactionCollector(client, messageId, options);
|
|
303
|
-
collector.once('end', (collected, reason) => {
|
|
304
|
-
if (options.max && collected.size < options.max) {
|
|
305
|
-
reject(new Error(`Collector ended with reason: ${reason}`));
|
|
306
|
-
}
|
|
307
|
-
else {
|
|
308
|
-
resolve(collected);
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
});
|
|
312
|
-
}
|
|
313
|
-
exports.default = Collector;
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29sbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL0NvbGxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUE2WEgsc0NBZ0JDO0FBS0Qsd0NBZ0JDO0FBaGFELG1DQUFzQztBQUN0Qyw2Q0FBMEM7QUFzQjFDOztHQUVHO0FBQ0gsTUFBc0IsU0FBK0IsU0FBUSxxQkFBWTtJQUN2RSxrREFBa0Q7SUFDbEMsTUFBTSxDQUFNO0lBRTVCLDBCQUEwQjtJQUNWLFNBQVMsR0FBcUIsSUFBSSx1QkFBVSxFQUFFLENBQUM7SUFFL0Qsc0NBQXNDO0lBQy9CLEtBQUssR0FBRyxLQUFLLENBQUM7SUFFckIscUNBQXFDO0lBQzlCLFNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBRXZDLHNCQUFzQjtJQUNmLE1BQU0sQ0FBdUU7SUFFcEYsd0JBQXdCO0lBQ2pCLE9BQU8sQ0FBc0I7SUFFcEMsZ0NBQWdDO0lBQ3hCLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFFNUIsNkJBQTZCO0lBQ3JCLFFBQVEsR0FBMEIsSUFBSSxDQUFDO0lBRS9DLDZCQUE2QjtJQUNyQixZQUFZLEdBQTBCLElBQUksQ0FBQztJQUVuRCxZQUFZLE1BQVcsRUFBRSxVQUErQixFQUFFO1FBQ3hELEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBSSxPQUFPLENBQUMsTUFBYyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUks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O1FBRXBFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzFDLElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDaEQsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGdDQUFnQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxrQkFBZSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbGxlY3RvcnMgZm9yIGF3YWl0aW5nIG1lc3NhZ2VzLCByZWFjdGlvbnMsIGFuZCBpbnRlcmFjdGlvbnNcbiAqIEFQSSBjb21wYXRpYmxlIHdpdGggRGlzY29yZC5qcyBDb2xsZWN0b3JzXG4gKi9cblxuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rvck9wdGlvbnM8VD4ge1xuICAvKiogSG93IGxvbmcgdG8gcnVuIHRoZSBjb2xsZWN0b3IgZm9yIGluIG1pbGxpc2Vjb25kcyAqL1xuICB0aW1lPzogbnVtYmVyO1xuICAvKiogSG93IGxvbmcgdG8gd2FpdCBmb3IgdGhlIG5leHQgaXRlbSBpbiBtaWxsaXNlY29uZHMgKi9cbiAgaWRsZT86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIHRvIGNvbGxlY3QgKi9cbiAgbWF4PzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gcHJvY2VzcyAqL1xuICBtYXhQcm9jZXNzZWQ/OiBudW1iZXI7XG4gIC8qKiBGaWx0ZXIgZnVuY3Rpb24gKi9cbiAgZmlsdGVyPzogKGl0ZW06IFQsIGNvbGxlY3RlZDogQ29sbGVjdGlvbjxzdHJpbmcsIFQ+KSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPjtcbiAgLyoqIFdoZXRoZXIgdG8gZGlzcG9zZSBvZiBpdGVtcyB3aGVuIHRoZSBjb2xsZWN0b3IgZW5kcyAqL1xuICBkaXNwb3NlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2xsZWN0b3JSZXNldFRpbWVyT3B0aW9ucyB7XG4gIHRpbWU/OiBudW1iZXI7XG4gIGlkbGU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgY29sbGVjdG9yc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ29sbGVjdG9yPEsgZXh0ZW5kcyBzdHJpbmcsIFY+IGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgLyoqIFRoZSBjbGllbnQgdGhhdCBpbnN0YW50aWF0ZWQgdGhpcyBjb2xsZWN0b3IgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudDogYW55O1xuICBcbiAgLyoqIFRoZSBpdGVtcyBjb2xsZWN0ZWQgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3RlZDogQ29sbGVjdGlvbjxLLCBWPiA9IG5ldyBDb2xsZWN0aW9uKCk7XG4gIFxuICAvKiogV2hldGhlciB0aGUgY29sbGVjdG9yIGhhcyBlbmRlZCAqL1xuICBwdWJsaWMgZW5kZWQgPSBmYWxzZTtcbiAgXG4gIC8qKiBUaGUgcmVhc29uIHRoZSBjb2xsZWN0b3IgZW5kZWQgKi9cbiAgcHVibGljIGVuZFJlYXNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIFxuICAvKiogRmlsdGVyIGZ1bmN0aW9uICovXG4gIHB1YmxpYyBmaWx0ZXI6IChpdGVtOiBWLCBjb2xsZWN0ZWQ6IENvbGxlY3Rpb248SywgVj4pID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuICBcbiAgLyoqIENvbGxlY3RvciBvcHRpb25zICovXG4gIHB1YmxpYyBvcHRpb25zOiBDb2xsZWN0b3JPcHRpb25zPFY+O1xuICBcbiAgLyoqIE51bWJlciBvZiBpdGVtcyBwcm9jZXNzZWQgKi9cbiAgcHJpdmF0ZSBfcHJvY2Vzc2VkQ291bnQgPSAwO1xuICBcbiAgLyoqIFRpbWVvdXQgZm9yIHRpbWUgbGltaXQgKi9cbiAgcHJpdmF0ZSBfdGltZW91dDogTm9kZUpTLlRpbWVvdXQgfCBudWxsID0gbnVsbDtcbiAgXG4gIC8qKiBUaW1lb3V0IGZvciBpZGxlIGxpbWl0ICovXG4gIHByaXZhdGUgX2lkbGVUaW1lb3V0OiBOb2RlSlMuVGltZW91dCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogYW55LCBvcHRpb25zOiBDb2xsZWN0b3JPcHRpb25zPFY+ID0ge30pIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuY2xpZW50ID0gY2xpZW50O1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5maWx0ZXIgPSAob3B0aW9ucy5maWx0ZXIgYXMgYW55KSA/PyAoKCkgPT4gdHJ1ZSk7XG4gICAgXG4gICAgdGhpcy5oYW5kbGVDb2xsZWN0ID0gdGhpcy5oYW5kbGVDb2xsZWN0LmJpbmQodGhpcyk7XG4gICAgdGhpcy5oYW5kbGVEaXNwb3NlID0gdGhpcy5oYW5kbGVEaXNwb3NlLmJpbmQodGhpcyk7XG4gICAgXG4gICAgaWYgKG9wdGlvbnMudGltZSkge1xuICAgICAgdGhpcy5fdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdG9wKCd0aW1lJyksIG9wdGlvbnMudGltZSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmlkbGUpIHtcbiAgICAgIHRoaXMuX2lkbGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0b3AoJ2lkbGUnKSwgb3B0aW9ucy5pZGxlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGFuIGl0ZW0gYmVpbmcgY29sbGVjdGVkXG4gICAqL1xuICBhc3luYyBoYW5kbGVDb2xsZWN0KGl0ZW06IFYpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5lbmRlZCkgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuX3Byb2Nlc3NlZENvdW50Kys7XG4gICAgXG4gICAgY29uc3QgZmlsdGVyUmVzdWx0ID0gYXdhaXQgdGhpcy5maWx0ZXIoaXRlbSwgdGhpcy5jb2xsZWN0ZWQpO1xuICAgIGlmICghZmlsdGVyUmVzdWx0KSByZXR1cm47XG4gICAgXG4gICAgY29uc3Qga2V5ID0gdGhpcy5jb2xsZWN0KGl0ZW0pO1xuICAgIGlmIChrZXkgPT09IG51bGwpIHJldHVybjtcbiAgICBcbiAgICB0aGlzLmNvbGxlY3RlZC5zZXQoa2V5LCBpdGVtKTtcbiAgICB0aGlzLmVtaXQoJ2NvbGxlY3QnLCBpdGVtKTtcbiAgICBcbiAgICAvLyBSZXNldCBpZGxlIHRpbWVyXG4gICAgaWYgKHRoaXMuX2lkbGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5faWRsZVRpbWVvdXQpO1xuICAgICAgdGhpcy5faWRsZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3RvcCgnaWRsZScpLCB0aGlzLm9wdGlvbnMuaWRsZSEpO1xuICAgIH1cbiAgICBcbiAgICAvLyBDaGVjayBsaW1pdHNcbiAgICBpZiAodGhpcy5vcHRpb25zLm1heCAmJiB0aGlzLmNvbGxlY3RlZC5zaXplID49IHRoaXMub3B0aW9ucy5tYXgpIHtcbiAgICAgIHRoaXMuc3RvcCgnbGltaXQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy5tYXhQcm9jZXNzZWQgJiYgdGhpcy5fcHJvY2Vzc2VkQ291bnQgPj0gdGhpcy5vcHRpb25zLm1heFByb2Nlc3NlZCkge1xuICAgICAgdGhpcy5zdG9wKCdwcm9jZXNzZWRMaW1pdCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYW4gaXRlbSBiZWluZyBkaXNwb3NlZFxuICAgKi9cbiAgaGFuZGxlRGlzcG9zZShpdGVtOiBWKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzcG9zZSkgcmV0dXJuO1xuICAgIFxuICAgIGNvbnN0IGtleSA9IHRoaXMuZGlzcG9zZShpdGVtKTtcbiAgICBpZiAoa2V5ID09PSBudWxsKSByZXR1cm47XG4gICAgXG4gICAgaWYgKHRoaXMuY29sbGVjdGVkLmhhcyhrZXkpKSB7XG4gICAgICB0aGlzLmNvbGxlY3RlZC5kZWxldGUoa2V5KTtcbiAgICAgIHRoaXMuZW1pdCgnZGlzcG9zZScsIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGtleSBmb3IgYW4gaXRlbVxuICAgKi9cbiAgYWJzdHJhY3QgY29sbGVjdChpdGVtOiBWKTogSyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEdldCB0aGUga2V5IGZvciBkaXNwb3NpbmcgYW4gaXRlbVxuICAgKi9cbiAgYWJzdHJhY3QgZGlzcG9zZShpdGVtOiBWKTogSyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFN0b3AgdGhlIGNvbGxlY3RvclxuICAgKi9cbiAgc3RvcChyZWFzb24gPSAndXNlcicpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmRlZCkgcmV0dXJuO1xuICAgIFxuICAgIHRoaXMuZW5kZWQgPSB0cnVlO1xuICAgIHRoaXMuZW5kUmVhc29uID0gcmVhc29uO1xuICAgIFxuICAgIGlmICh0aGlzLl90aW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dCk7XG4gICAgICB0aGlzLl90aW1lb3V0ID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2lkbGVUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5faWRsZVRpbWVvdXQpO1xuICAgICAgdGhpcy5faWRsZVRpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmVtaXQoJ2VuZCcsIHRoaXMuY29sbGVjdGVkLCByZWFzb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBjb2xsZWN0b3IncyB0aW1lclxuICAgKi9cbiAgcmVzZXRUaW1lcihvcHRpb25zOiBDb2xsZWN0b3JSZXNldFRpbWVyT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3RpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtcbiAgICAgIHRoaXMuX3RpbWVvdXQgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5faWRsZVRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9pZGxlVGltZW91dCk7XG4gICAgICB0aGlzLl9pZGxlVGltZW91dCA9IG51bGw7XG4gICAgfVxuICAgIFxuICAgIGlmIChvcHRpb25zLnRpbWUgPz8gdGhpcy5vcHRpb25zLnRpbWUpIHtcbiAgICAgIHRoaXMuX3RpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc3RvcCgndGltZScpLCBvcHRpb25zLnRpbWUgPz8gdGhpcy5vcHRpb25zLnRpbWUpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5pZGxlID8/IHRoaXMub3B0aW9ucy5pZGxlKSB7XG4gICAgICB0aGlzLl9pZGxlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdG9wKCdpZGxlJyksIG9wdGlvbnMuaWRsZSA/PyB0aGlzLm9wdGlvbnMuaWRsZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHRoZSBlbmQgY29uZGl0aW9uc1xuICAgKi9cbiAgY2hlY2tFbmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcmVhc29uID0gdGhpcy5lbmRSZWFzb247XG4gICAgaWYgKHJlYXNvbikge1xuICAgICAgdGhpcy5zdG9wKHJlYXNvbik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbmV4dCBpdGVtXG4gICAqL1xuICBnZXQgbmV4dCgpOiBQcm9taXNlPFY+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZW5kZWQpIHtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ29sbGVjdG9yIGhhcyBlbmRlZCcpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgXG4gICAgICBjb25zdCBjbGVhbnVwID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKCdjb2xsZWN0Jywgb25Db2xsZWN0KTtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcignZW5kJywgb25FbmQpO1xuICAgICAgfTtcbiAgICAgIFxuICAgICAgY29uc3Qgb25Db2xsZWN0ID0gKGl0ZW06IFYpID0+IHtcbiAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICByZXNvbHZlKGl0ZW0pO1xuICAgICAgfTtcbiAgICAgIFxuICAgICAgY29uc3Qgb25FbmQgPSAoKSA9PiB7XG4gICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignQ29sbGVjdG9yIGVuZGVkJykpO1xuICAgICAgfTtcbiAgICAgIFxuICAgICAgdGhpcy5vbignY29sbGVjdCcsIG9uQ29sbGVjdCk7XG4gICAgICB0aGlzLm9uKCdlbmQnLCBvbkVuZCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBNZXNzYWdlIGNvbGxlY3RvciBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUNvbGxlY3Rvck9wdGlvbnMgZXh0ZW5kcyBDb2xsZWN0b3JPcHRpb25zPGFueT4ge1xuICAvKiogQ2hhbm5lbCB0byBjb2xsZWN0IG1lc3NhZ2VzIGZyb20gKi9cbiAgY2hhbm5lbElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbGxlY3RvciBmb3IgbWVzc2FnZXNcbiAqL1xuZXhwb3J0IGNsYXNzIE1lc3NhZ2VDb2xsZWN0b3IgZXh0ZW5kcyBDb2xsZWN0b3I8c3RyaW5nLCBhbnk+IHtcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5uZWxJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VIYW5kbGVyOiAobWVzc2FnZTogYW55KSA9PiB2b2lkO1xuXG4gIGNvbnN0cnVjdG9yKGNsaWVudDogYW55LCBjaGFubmVsSWQ6IHN0cmluZywgb3B0aW9uczogTWVzc2FnZUNvbGxlY3Rvck9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGNsaWVudCwgb3B0aW9ucyk7XG4gICAgdGhpcy5jaGFubmVsSWQgPSBjaGFubmVsSWQ7XG4gICAgXG4gICAgLy8gR2V0IGJvdCdzIHVzZXIgSUQgdG8gZmlsdGVyIG91dCBib3QncyBvd24gbWVzc2FnZXNcbiAgICBjb25zdCBib3RVc2VySWQgPSBjbGllbnQudXNlcj8uaWQ7XG4gICAgXG4gICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgIGlmIChtZXNzYWdlLmNoYW5uZWxfaWQgPT09IHRoaXMuY2hhbm5lbElkIHx8IG1lc3NhZ2UuY2hhbm5lbElkID09PSB0aGlzLmNoYW5uZWxJZCkge1xuICAgICAgICAvLyBBdXRvbWF0aWNhbGx5IGZpbHRlciBvdXQgYm90J3Mgb3duIG1lc3NhZ2VzXG4gICAgICAgIGNvbnN0IGF1dGhvcklkID0gbWVzc2FnZS5hdXRob3I/LmlkIHx8IG1lc3NhZ2UuYXV0aG9yX2lkO1xuICAgICAgICBpZiAoYm90VXNlcklkICYmIGF1dGhvcklkID09PSBib3RVc2VySWQpIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIC8vIEFsc28gZmlsdGVyIGJ5IGFwcGxpY2F0aW9uX2lkIChib3QgbWVzc2FnZXMgaGF2ZSB0aGlzKVxuICAgICAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbl9pZCB8fCBtZXNzYWdlLmFwcGxpY2F0aW9uSWQpIHJldHVybjtcbiAgICAgICAgXG4gICAgICAgIHRoaXMuaGFuZGxlQ29sbGVjdChtZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFxuICAgIGNsaWVudC5vbignbWVzc2FnZUNyZWF0ZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuICAgIFxuICAgIHRoaXMub25jZSgnZW5kJywgKCkgPT4ge1xuICAgICAgY2xpZW50LnJlbW92ZUxpc3RlbmVyKCdtZXNzYWdlQ3JlYXRlJywgdGhpcy5tZXNzYWdlSGFuZGxlcik7XG4gICAgfSk7XG4gIH1cblxuICBjb2xsZWN0KG1lc3NhZ2U6IGFueSk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBtZXNzYWdlLmlkID8/IG51bGw7XG4gIH1cblxuICBkaXNwb3NlKG1lc3NhZ2U6IGFueSk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiBtZXNzYWdlLmlkID8/IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBJbnRlcmFjdGlvbiBjb2xsZWN0b3Igb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVyYWN0aW9uQ29sbGVjdG9yT3B0aW9ucyBleHRlbmRzIENvbGxlY3Rvck9wdGlvbnM8YW55PiB7XG4gIC8qKiBDaGFubmVsIHRvIGNvbGxlY3QgaW50ZXJhY3Rpb25zIGZyb20gKi9cbiAgY2hhbm5lbElkPzogc3RyaW5nO1xuICAvKiogR3VpbGQgdG8gY29sbGVjdCBpbnRlcmFjdGlvbnMgZnJvbSAqL1xuICBndWlsZElkPzogc3RyaW5nO1xuICAvKiogTWVzc2FnZSB0byBjb2xsZWN0IGludGVyYWN0aW9ucyBmcm9tICovXG4gIG1lc3NhZ2VJZD86IHN0cmluZztcbiAgLyoqIEludGVyYWN0aW9uIHR5cGVzIHRvIGNvbGxlY3QgKi9cbiAgaW50ZXJhY3Rpb25UeXBlPzogbnVtYmVyIHwgbnVtYmVyW107XG4gIC8qKiBDb21wb25lbnQgdHlwZXMgdG8gY29sbGVjdCAqL1xuICBjb21wb25lbnRUeXBlPzogbnVtYmVyIHwgbnVtYmVyW107XG59XG5cbi8qKlxuICogQ29sbGVjdG9yIGZvciBpbnRlcmFjdGlvbnMgKGJ1dHRvbnMsIHNlbGVjdCBtZW51cywgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uQ29sbGVjdG9yIGV4dGVuZHMgQ29sbGVjdG9yPHN0cmluZywgYW55PiB7XG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsSWQ/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBndWlsZElkPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWVzc2FnZUlkPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgaW50ZXJhY3Rpb25UeXBlPzogbnVtYmVyW107XG4gIHB1YmxpYyByZWFkb25seSBjb21wb25lbnRUeXBlPzogbnVtYmVyW107XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZXJhY3Rpb25IYW5kbGVyOiAoaW50ZXJhY3Rpb246IGFueSkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihjbGllbnQ6IGFueSwgb3B0aW9uczogSW50ZXJhY3Rpb25Db2xsZWN0b3JPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihjbGllbnQsIG9wdGlvbnMpO1xuICAgIHRoaXMuY2hhbm5lbElkID0gb3B0aW9ucy5jaGFubmVsSWQ7XG4gICAgdGhpcy5ndWlsZElkID0gb3B0aW9ucy5ndWlsZElkO1xuICAgIHRoaXMubWVzc2FnZUlkID0gb3B0aW9ucy5tZXNzYWdlSWQ7XG4gICAgdGhpcy5pbnRlcmFjdGlvblR5cGUgPSBvcHRpb25zLmludGVyYWN0aW9uVHlwZSBcbiAgICAgID8gQXJyYXkuaXNBcnJheShvcHRpb25zLmludGVyYWN0aW9uVHlwZSkgPyBvcHRpb25zLmludGVyYWN0aW9uVHlwZSA6IFtvcHRpb25zLmludGVyYWN0aW9uVHlwZV1cbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuY29tcG9uZW50VHlwZSA9IG9wdGlvbnMuY29tcG9uZW50VHlwZVxuICAgICAgPyBBcnJheS5pc0FycmF5KG9wdGlvbnMuY29tcG9uZW50VHlwZSkgPyBvcHRpb25zLmNvbXBvbmVudFR5cGUgOiBbb3B0aW9ucy5jb21wb25lbnRUeXBlXVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgXG4gICAgdGhpcy5pbnRlcmFjdGlvbkhhbmRsZXIgPSAoaW50ZXJhY3Rpb246IGFueSkgPT4ge1xuICAgICAgLy8gRmlsdGVyIGJ5IGNoYW5uZWxcbiAgICAgIGlmICh0aGlzLmNoYW5uZWxJZCAmJiBpbnRlcmFjdGlvbi5jaGFubmVsSWQgIT09IHRoaXMuY2hhbm5lbElkKSByZXR1cm47XG4gICAgICAvLyBGaWx0ZXIgYnkgZ3VpbGRcbiAgICAgIGlmICh0aGlzLmd1aWxkSWQgJiYgaW50ZXJhY3Rpb24uZ3VpbGRJZCAhPT0gdGhpcy5ndWlsZElkKSByZXR1cm47XG4gICAgICAvLyBGaWx0ZXIgYnkgbWVzc2FnZVxuICAgICAgaWYgKHRoaXMubWVzc2FnZUlkICYmIGludGVyYWN0aW9uLm1lc3NhZ2U/LmlkICE9PSB0aGlzLm1lc3NhZ2VJZCkgcmV0dXJuO1xuICAgICAgLy8gRmlsdGVyIGJ5IGludGVyYWN0aW9uIHR5cGVcbiAgICAgIGlmICh0aGlzLmludGVyYWN0aW9uVHlwZSAmJiAhdGhpcy5pbnRlcmFjdGlvblR5cGUuaW5jbHVkZXMoaW50ZXJhY3Rpb24udHlwZSkpIHJldHVybjtcbiAgICAgIC8vIEZpbHRlciBieSBjb21wb25lbnQgdHlwZVxuICAgICAgaWYgKHRoaXMuY29tcG9uZW50VHlwZSAmJiBpbnRlcmFjdGlvbi5jb21wb25lbnRUeXBlICYmICF0aGlzLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoaW50ZXJhY3Rpb24uY29tcG9uZW50VHlwZSkpIHJldHVybjtcbiAgICAgIFxuICAgICAgdGhpcy5oYW5kbGVDb2xsZWN0KGludGVyYWN0aW9uKTtcbiAgICB9O1xuICAgIFxuICAgIGNsaWVudC5vbignaW50ZXJhY3Rpb25DcmVhdGUnLCB0aGlzLmludGVyYWN0aW9uSGFuZGxlcik7XG4gICAgXG4gICAgdGhpcy5vbmNlKCdlbmQnLCAoKSA9PiB7XG4gICAgICBjbGllbnQucmVtb3ZlTGlzdGVuZXIoJ2ludGVyYWN0aW9uQ3JlYXRlJywgdGhpcy5pbnRlcmFjdGlvbkhhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgY29sbGVjdChpbnRlcmFjdGlvbjogYW55KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIGludGVyYWN0aW9uLmlkID8/IG51bGw7XG4gIH1cblxuICBkaXNwb3NlKGludGVyYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gaW50ZXJhY3Rpb24uaWQgPz8gbnVsbDtcbiAgfVxufVxuXG4vKipcbiAqIFJlYWN0aW9uIGNvbGxlY3RvciBvcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVhY3Rpb25Db2xsZWN0b3JPcHRpb25zIGV4dGVuZHMgQ29sbGVjdG9yT3B0aW9uczxhbnk+IHtcbiAgLyoqIE1lc3NhZ2UgdG8gY29sbGVjdCByZWFjdGlvbnMgZnJvbSAqL1xuICBtZXNzYWdlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb2xsZWN0b3IgZm9yIHJlYWN0aW9uc1xuICovXG5leHBvcnQgY2xhc3MgUmVhY3Rpb25Db2xsZWN0b3IgZXh0ZW5kcyBDb2xsZWN0b3I8c3RyaW5nLCBhbnk+IHtcbiAgcHVibGljIHJlYWRvbmx5IG1lc3NhZ2VJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWN0aW9uSGFuZGxlcjogKHJlYWN0aW9uOiBhbnkpID0+IHZvaWQ7XG5cbiAgY29uc3RydWN0b3IoY2xpZW50OiBhbnksIG1lc3NhZ2VJZDogc3RyaW5nLCBvcHRpb25zOiBSZWFjdGlvbkNvbGxlY3Rvck9wdGlvbnMpIHtcbiAgICBzdXBlcihjbGllbnQsIG9wdGlvbnMpO1xuICAgIHRoaXMubWVzc2FnZUlkID0gbWVzc2FnZUlkO1xuICAgIFxuICAgIHRoaXMucmVhY3Rpb25IYW5kbGVyID0gKHJlYWN0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmIChyZWFjdGlvbi5tZXNzYWdlX2lkID09PSB0aGlzLm1lc3NhZ2VJZCB8fCByZWFjdGlvbi5tZXNzYWdlSWQgPT09IHRoaXMubWVzc2FnZUlkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlQ29sbGVjdChyZWFjdGlvbik7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICBjbGllbnQub24oJ21lc3NhZ2VSZWFjdGlvbkFkZCcsIHRoaXMucmVhY3Rpb25IYW5kbGVyKTtcbiAgICBcbiAgICB0aGlzLm9uY2UoJ2VuZCcsICgpID0+IHtcbiAgICAgIGNsaWVudC5yZW1vdmVMaXN0ZW5lcignbWVzc2FnZVJlYWN0aW9uQWRkJywgdGhpcy5yZWFjdGlvbkhhbmRsZXIpO1xuICAgIH0pO1xuICB9XG5cbiAgY29sbGVjdChyZWFjdGlvbjogYW55KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgLy8gS2V5IGlzIGVtb2ppIGlkZW50aWZpZXJcbiAgICByZXR1cm4gcmVhY3Rpb24uZW1vamk/LmlkID8/IHJlYWN0aW9uLmVtb2ppPy5uYW1lID8/IG51bGw7XG4gIH1cblxuICBkaXNwb3NlKHJlYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVhY3Rpb24uZW1vamk/LmlkID8/IHJlYWN0aW9uLmVtb2ppPy5uYW1lID8/IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBBd2FpdCBtZXNzYWdlcyBoZWxwZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF3YWl0TWVzc2FnZXMoXG4gIGNsaWVudDogYW55LFxuICBjaGFubmVsSWQ6IHN0cmluZyxcbiAgb3B0aW9uczogTWVzc2FnZUNvbGxlY3Rvck9wdGlvbnMgPSB7fVxuKTogUHJvbWlzZTxDb2xsZWN0aW9uPHN0cmluZywgYW55Pj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbGxlY3RvciA9IG5ldyBNZXNzYWdlQ29sbGVjdG9yKGNsaWVudCwgY2hhbm5lbElkLCBvcHRpb25zKTtcbiAgICBcbiAgICBjb2xsZWN0b3Iub25jZSgnZW5kJywgKGNvbGxlY3RlZCwgcmVhc29uKSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5tYXggJiYgY29sbGVjdGVkLnNpemUgPCBvcHRpb25zLm1heCkge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGBDb2xsZWN0b3IgZW5kZWQgd2l0aCByZWFzb246ICR7cmVhc29ufWApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoY29sbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbi8qKlxuICogQXdhaXQgcmVhY3Rpb25zIGhlbHBlclxuICovXG5leHBvcnQgZnVuY3Rpb24gYXdhaXRSZWFjdGlvbnMoXG4gIGNsaWVudDogYW55LFxuICBtZXNzYWdlSWQ6IHN0cmluZyxcbiAgb3B0aW9uczogUmVhY3Rpb25Db2xsZWN0b3JPcHRpb25zXG4pOiBQcm9taXNlPENvbGxlY3Rpb248c3RyaW5nLCBhbnk+PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgY29sbGVjdG9yID0gbmV3IFJlYWN0aW9uQ29sbGVjdG9yKGNsaWVudCwgbWVzc2FnZUlkLCBvcHRpb25zKTtcbiAgICBcbiAgICBjb2xsZWN0b3Iub25jZSgnZW5kJywgKGNvbGxlY3RlZCwgcmVhc29uKSA9PiB7XG4gICAgICBpZiAob3B0aW9ucy5tYXggJiYgY29sbGVjdGVkLnNpemUgPCBvcHRpb25zLm1heCkge1xuICAgICAgICByZWplY3QobmV3IEVycm9yKGBDb2xsZWN0b3IgZW5kZWQgd2l0aCByZWFzb246ICR7cmVhc29ufWApKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc29sdmUoY29sbGVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbGxlY3RvcjtcbiJdfQ==
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Data resolver utilities for handling various data types
|
|
3
|
-
*/
|
|
4
|
-
export type BufferResolvable = Buffer | string;
|
|
5
|
-
export type Base64Resolvable = Buffer | string;
|
|
6
|
-
/**
|
|
7
|
-
* Resolves various data types to usable formats
|
|
8
|
-
*/
|
|
9
|
-
export declare class DataResolver {
|
|
10
|
-
/**
|
|
11
|
-
* Resolves a BufferResolvable to a Buffer
|
|
12
|
-
* @param resource The resource to resolve
|
|
13
|
-
*/
|
|
14
|
-
static resolveBuffer(resource: BufferResolvable): Promise<Buffer>;
|
|
15
|
-
/**
|
|
16
|
-
* Resolves a Base64Resolvable to a base64 string
|
|
17
|
-
* @param resource The resource to resolve
|
|
18
|
-
* @param mimeType The MIME type for the data URI
|
|
19
|
-
*/
|
|
20
|
-
static resolveBase64(resource: Base64Resolvable, mimeType?: string): Promise<string>;
|
|
21
|
-
/**
|
|
22
|
-
* Resolves a file to a name and buffer
|
|
23
|
-
* @param resource The file resource
|
|
24
|
-
*/
|
|
25
|
-
static resolveFile(resource: BufferResolvable | {
|
|
26
|
-
name?: string;
|
|
27
|
-
attachment: BufferResolvable;
|
|
28
|
-
}): Promise<{
|
|
29
|
-
name: string;
|
|
30
|
-
data: Buffer;
|
|
31
|
-
}>;
|
|
32
|
-
/**
|
|
33
|
-
* Resolves multiple files
|
|
34
|
-
* @param resources The file resources
|
|
35
|
-
*/
|
|
36
|
-
static resolveFiles(resources: (BufferResolvable | {
|
|
37
|
-
name?: string;
|
|
38
|
-
attachment: BufferResolvable;
|
|
39
|
-
})[]): Promise<{
|
|
40
|
-
name: string;
|
|
41
|
-
data: Buffer;
|
|
42
|
-
}[]>;
|
|
43
|
-
/**
|
|
44
|
-
* Resolves a color to a number
|
|
45
|
-
* @param color The color to resolve
|
|
46
|
-
*/
|
|
47
|
-
static resolveColor(color: number | string | [number, number, number] | null): number | null;
|
|
48
|
-
/**
|
|
49
|
-
* Resolves a string to a snowflake ID
|
|
50
|
-
* @param value The value to resolve
|
|
51
|
-
*/
|
|
52
|
-
static resolveSnowflake(value: string | number | {
|
|
53
|
-
id: string | number;
|
|
54
|
-
}): string;
|
|
55
|
-
/**
|
|
56
|
-
* Resolves an image to a base64 data URI
|
|
57
|
-
* @param image The image to resolve
|
|
58
|
-
*/
|
|
59
|
-
static resolveImage(image: BufferResolvable): Promise<string>;
|
|
60
|
-
}
|
|
61
|
-
export default DataResolver;
|