baff.js 0.0.0-stage → 0.1.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/CHANGELOG.md +20 -0
- package/LICENSE +7 -0
- package/README.md +244 -3
- package/dist/cjs/builders/EmbedBuilder.d.ts +51 -0
- package/dist/cjs/builders/EmbedBuilder.js +150 -0
- package/dist/cjs/builders/SlashCommandBuilder.d.ts +69 -0
- package/dist/cjs/builders/SlashCommandBuilder.js +185 -0
- package/dist/cjs/builders/components/ActionRowBuilder.d.ts +14 -0
- package/dist/cjs/builders/components/ActionRowBuilder.js +45 -0
- package/dist/cjs/builders/components/ButtonBuilder.d.ts +19 -0
- package/dist/cjs/builders/components/ButtonBuilder.js +69 -0
- package/dist/cjs/builders/components/LayoutBuilders.d.ts +63 -0
- package/dist/cjs/builders/components/LayoutBuilders.js +179 -0
- package/dist/cjs/builders/components/ModalBuilder.d.ts +36 -0
- package/dist/cjs/builders/components/ModalBuilder.js +118 -0
- package/dist/cjs/builders/components/SelectMenuBuilder.d.ts +80 -0
- package/dist/cjs/builders/components/SelectMenuBuilder.js +192 -0
- package/dist/cjs/builders/components/shared.d.ts +16 -0
- package/dist/cjs/builders/components/shared.js +32 -0
- package/dist/cjs/builders/messagePayload.d.ts +35 -0
- package/dist/cjs/builders/messagePayload.js +88 -0
- package/dist/cjs/builders/validate.d.ts +12 -0
- package/dist/cjs/builders/validate.js +54 -0
- package/dist/cjs/client/Client.d.ts +63 -0
- package/dist/cjs/client/Client.js +152 -0
- package/dist/cjs/client/dispatch.d.ts +2 -0
- package/dist/cjs/client/dispatch.js +224 -0
- package/dist/cjs/client/events.d.ts +129 -0
- package/dist/cjs/client/events.js +2 -0
- package/dist/cjs/collectors/Collector.d.ts +37 -0
- package/dist/cjs/collectors/Collector.js +84 -0
- package/dist/cjs/collectors/InteractionCollector.d.ts +21 -0
- package/dist/cjs/collectors/InteractionCollector.js +44 -0
- package/dist/cjs/collectors/MessageCollector.d.ts +14 -0
- package/dist/cjs/collectors/MessageCollector.js +23 -0
- package/dist/cjs/errors/BaffError.d.ts +26 -0
- package/dist/cjs/errors/BaffError.js +39 -0
- package/dist/cjs/gateway/Gateway.d.ts +53 -0
- package/dist/cjs/gateway/Gateway.js +128 -0
- package/dist/cjs/http/handler.d.ts +11 -0
- package/dist/cjs/http/handler.js +72 -0
- package/dist/cjs/http/verify.d.ts +11 -0
- package/dist/cjs/http/verify.js +28 -0
- package/dist/cjs/index.d.ts +51 -0
- package/dist/cjs/index.js +185 -0
- package/dist/cjs/managers/CachedManager.d.ts +16 -0
- package/dist/cjs/managers/CachedManager.js +18 -0
- package/dist/cjs/managers/ChannelManager.d.ts +23 -0
- package/dist/cjs/managers/ChannelManager.js +85 -0
- package/dist/cjs/managers/CommandManager.d.ts +32 -0
- package/dist/cjs/managers/CommandManager.js +72 -0
- package/dist/cjs/managers/EventManager.d.ts +15 -0
- package/dist/cjs/managers/EventManager.js +36 -0
- package/dist/cjs/managers/ExpressionManagers.d.ts +36 -0
- package/dist/cjs/managers/ExpressionManagers.js +73 -0
- package/dist/cjs/managers/InviteManager.d.ts +17 -0
- package/dist/cjs/managers/InviteManager.js +26 -0
- package/dist/cjs/managers/MemberManager.d.ts +31 -0
- package/dist/cjs/managers/MemberManager.js +62 -0
- package/dist/cjs/managers/MessageManager.d.ts +32 -0
- package/dist/cjs/managers/MessageManager.js +79 -0
- package/dist/cjs/managers/RoleManager.d.ts +22 -0
- package/dist/cjs/managers/RoleManager.js +73 -0
- package/dist/cjs/managers/ServerChannelManager.d.ts +20 -0
- package/dist/cjs/managers/ServerChannelManager.js +30 -0
- package/dist/cjs/managers/ServerManager.d.ts +12 -0
- package/dist/cjs/managers/ServerManager.js +62 -0
- package/dist/cjs/managers/ThreadManager.d.ts +12 -0
- package/dist/cjs/managers/ThreadManager.js +20 -0
- package/dist/cjs/managers/UserManager.d.ts +11 -0
- package/dist/cjs/managers/UserManager.js +38 -0
- package/dist/cjs/managers/VoiceManager.d.ts +8 -0
- package/dist/cjs/managers/VoiceManager.js +17 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/rest/REST.d.ts +58 -0
- package/dist/cjs/rest/REST.js +193 -0
- package/dist/cjs/rest/Routes.d.ts +54 -0
- package/dist/cjs/rest/Routes.js +58 -0
- package/dist/cjs/rest/files.d.ts +19 -0
- package/dist/cjs/rest/files.js +37 -0
- package/dist/cjs/structures/Base.d.ts +13 -0
- package/dist/cjs/structures/Base.js +30 -0
- package/dist/cjs/structures/Message.d.ts +91 -0
- package/dist/cjs/structures/Message.js +200 -0
- package/dist/cjs/structures/Role.d.ts +34 -0
- package/dist/cjs/structures/Role.js +84 -0
- package/dist/cjs/structures/ScheduledEvent.d.ts +37 -0
- package/dist/cjs/structures/ScheduledEvent.js +73 -0
- package/dist/cjs/structures/Server.d.ts +68 -0
- package/dist/cjs/structures/Server.js +124 -0
- package/dist/cjs/structures/ServerAssets.d.ts +48 -0
- package/dist/cjs/structures/ServerAssets.js +104 -0
- package/dist/cjs/structures/ServerMember.d.ts +47 -0
- package/dist/cjs/structures/ServerMember.js +138 -0
- package/dist/cjs/structures/User.d.ts +35 -0
- package/dist/cjs/structures/User.js +87 -0
- package/dist/cjs/structures/Webhook.d.ts +30 -0
- package/dist/cjs/structures/Webhook.js +68 -0
- package/dist/cjs/structures/channels/BaseChannel.d.ts +49 -0
- package/dist/cjs/structures/channels/BaseChannel.js +81 -0
- package/dist/cjs/structures/channels/DMChannel.d.ts +9 -0
- package/dist/cjs/structures/channels/DMChannel.js +21 -0
- package/dist/cjs/structures/channels/ServerChannels.d.ts +57 -0
- package/dist/cjs/structures/channels/ServerChannels.js +138 -0
- package/dist/cjs/structures/channels/TextBasedChannel.d.ts +25 -0
- package/dist/cjs/structures/channels/TextBasedChannel.js +53 -0
- package/dist/cjs/structures/interactions/BaseInteraction.d.ts +74 -0
- package/dist/cjs/structures/interactions/BaseInteraction.js +221 -0
- package/dist/cjs/structures/interactions/CommandInteraction.d.ts +44 -0
- package/dist/cjs/structures/interactions/CommandInteraction.js +109 -0
- package/dist/cjs/structures/interactions/ComponentInteraction.d.ts +44 -0
- package/dist/cjs/structures/interactions/ComponentInteraction.js +64 -0
- package/dist/cjs/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
- package/dist/cjs/structures/interactions/ModalSubmitInteraction.js +42 -0
- package/dist/cjs/structures/interactions/createInteraction.d.ts +4 -0
- package/dist/cjs/structures/interactions/createInteraction.js +34 -0
- package/dist/cjs/types.d.ts +369 -0
- package/dist/cjs/types.js +2 -0
- package/dist/cjs/util/Collection.d.ts +32 -0
- package/dist/cjs/util/Collection.js +145 -0
- package/dist/cjs/util/Permissions.d.ts +87 -0
- package/dist/cjs/util/Permissions.js +113 -0
- package/dist/cjs/util/Snowflake.d.ts +20 -0
- package/dist/cjs/util/Snowflake.js +40 -0
- package/dist/cjs/util/TypedEmitter.d.ts +17 -0
- package/dist/cjs/util/TypedEmitter.js +5 -0
- package/dist/cjs/util/constants.d.ts +78 -0
- package/dist/cjs/util/constants.js +81 -0
- package/dist/cjs/util/emoji.d.ts +8 -0
- package/dist/cjs/util/emoji.js +10 -0
- package/dist/cjs/util/formatters.d.ts +29 -0
- package/dist/cjs/util/formatters.js +55 -0
- package/dist/esm/builders/EmbedBuilder.d.ts +51 -0
- package/dist/esm/builders/EmbedBuilder.js +145 -0
- package/dist/esm/builders/SlashCommandBuilder.d.ts +69 -0
- package/dist/esm/builders/SlashCommandBuilder.js +170 -0
- package/dist/esm/builders/components/ActionRowBuilder.d.ts +14 -0
- package/dist/esm/builders/components/ActionRowBuilder.js +41 -0
- package/dist/esm/builders/components/ButtonBuilder.d.ts +19 -0
- package/dist/esm/builders/components/ButtonBuilder.js +65 -0
- package/dist/esm/builders/components/LayoutBuilders.d.ts +63 -0
- package/dist/esm/builders/components/LayoutBuilders.js +169 -0
- package/dist/esm/builders/components/ModalBuilder.d.ts +36 -0
- package/dist/esm/builders/components/ModalBuilder.js +113 -0
- package/dist/esm/builders/components/SelectMenuBuilder.d.ts +80 -0
- package/dist/esm/builders/components/SelectMenuBuilder.js +183 -0
- package/dist/esm/builders/components/shared.d.ts +16 -0
- package/dist/esm/builders/components/shared.js +26 -0
- package/dist/esm/builders/messagePayload.d.ts +35 -0
- package/dist/esm/builders/messagePayload.js +83 -0
- package/dist/esm/builders/validate.d.ts +12 -0
- package/dist/esm/builders/validate.js +46 -0
- package/dist/esm/client/Client.d.ts +63 -0
- package/dist/esm/client/Client.js +147 -0
- package/dist/esm/client/dispatch.d.ts +2 -0
- package/dist/esm/client/dispatch.js +221 -0
- package/dist/esm/client/events.d.ts +129 -0
- package/dist/esm/client/events.js +1 -0
- package/dist/esm/collectors/Collector.d.ts +37 -0
- package/dist/esm/collectors/Collector.js +78 -0
- package/dist/esm/collectors/InteractionCollector.d.ts +21 -0
- package/dist/esm/collectors/InteractionCollector.js +40 -0
- package/dist/esm/collectors/MessageCollector.d.ts +14 -0
- package/dist/esm/collectors/MessageCollector.js +19 -0
- package/dist/esm/errors/BaffError.d.ts +26 -0
- package/dist/esm/errors/BaffError.js +33 -0
- package/dist/esm/gateway/Gateway.d.ts +53 -0
- package/dist/esm/gateway/Gateway.js +124 -0
- package/dist/esm/http/handler.d.ts +11 -0
- package/dist/esm/http/handler.js +68 -0
- package/dist/esm/http/verify.d.ts +11 -0
- package/dist/esm/http/verify.js +22 -0
- package/dist/esm/index.d.ts +51 -0
- package/dist/esm/index.js +49 -0
- package/dist/esm/managers/CachedManager.d.ts +16 -0
- package/dist/esm/managers/CachedManager.js +14 -0
- package/dist/esm/managers/ChannelManager.d.ts +23 -0
- package/dist/esm/managers/ChannelManager.js +81 -0
- package/dist/esm/managers/CommandManager.d.ts +32 -0
- package/dist/esm/managers/CommandManager.js +67 -0
- package/dist/esm/managers/EventManager.d.ts +15 -0
- package/dist/esm/managers/EventManager.js +32 -0
- package/dist/esm/managers/ExpressionManagers.d.ts +36 -0
- package/dist/esm/managers/ExpressionManagers.js +68 -0
- package/dist/esm/managers/InviteManager.d.ts +17 -0
- package/dist/esm/managers/InviteManager.js +22 -0
- package/dist/esm/managers/MemberManager.d.ts +31 -0
- package/dist/esm/managers/MemberManager.js +58 -0
- package/dist/esm/managers/MessageManager.d.ts +32 -0
- package/dist/esm/managers/MessageManager.js +75 -0
- package/dist/esm/managers/RoleManager.d.ts +22 -0
- package/dist/esm/managers/RoleManager.js +69 -0
- package/dist/esm/managers/ServerChannelManager.d.ts +20 -0
- package/dist/esm/managers/ServerChannelManager.js +26 -0
- package/dist/esm/managers/ServerManager.d.ts +12 -0
- package/dist/esm/managers/ServerManager.js +58 -0
- package/dist/esm/managers/ThreadManager.d.ts +12 -0
- package/dist/esm/managers/ThreadManager.js +16 -0
- package/dist/esm/managers/UserManager.d.ts +11 -0
- package/dist/esm/managers/UserManager.js +34 -0
- package/dist/esm/managers/VoiceManager.d.ts +8 -0
- package/dist/esm/managers/VoiceManager.js +13 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/rest/REST.d.ts +58 -0
- package/dist/esm/rest/REST.js +188 -0
- package/dist/esm/rest/Routes.d.ts +54 -0
- package/dist/esm/rest/Routes.js +55 -0
- package/dist/esm/rest/files.d.ts +19 -0
- package/dist/esm/rest/files.js +31 -0
- package/dist/esm/structures/Base.d.ts +13 -0
- package/dist/esm/structures/Base.js +25 -0
- package/dist/esm/structures/Message.d.ts +91 -0
- package/dist/esm/structures/Message.js +194 -0
- package/dist/esm/structures/Role.d.ts +34 -0
- package/dist/esm/structures/Role.js +79 -0
- package/dist/esm/structures/ScheduledEvent.d.ts +37 -0
- package/dist/esm/structures/ScheduledEvent.js +68 -0
- package/dist/esm/structures/Server.d.ts +68 -0
- package/dist/esm/structures/Server.js +120 -0
- package/dist/esm/structures/ServerAssets.d.ts +48 -0
- package/dist/esm/structures/ServerAssets.js +98 -0
- package/dist/esm/structures/ServerMember.d.ts +47 -0
- package/dist/esm/structures/ServerMember.js +133 -0
- package/dist/esm/structures/User.d.ts +35 -0
- package/dist/esm/structures/User.js +82 -0
- package/dist/esm/structures/Webhook.d.ts +30 -0
- package/dist/esm/structures/Webhook.js +63 -0
- package/dist/esm/structures/channels/BaseChannel.d.ts +49 -0
- package/dist/esm/structures/channels/BaseChannel.js +77 -0
- package/dist/esm/structures/channels/DMChannel.d.ts +9 -0
- package/dist/esm/structures/channels/DMChannel.js +17 -0
- package/dist/esm/structures/channels/ServerChannels.d.ts +57 -0
- package/dist/esm/structures/channels/ServerChannels.js +129 -0
- package/dist/esm/structures/channels/TextBasedChannel.d.ts +25 -0
- package/dist/esm/structures/channels/TextBasedChannel.js +49 -0
- package/dist/esm/structures/interactions/BaseInteraction.d.ts +74 -0
- package/dist/esm/structures/interactions/BaseInteraction.js +217 -0
- package/dist/esm/structures/interactions/CommandInteraction.d.ts +44 -0
- package/dist/esm/structures/interactions/CommandInteraction.js +104 -0
- package/dist/esm/structures/interactions/ComponentInteraction.d.ts +44 -0
- package/dist/esm/structures/interactions/ComponentInteraction.js +53 -0
- package/dist/esm/structures/interactions/ModalSubmitInteraction.d.ts +29 -0
- package/dist/esm/structures/interactions/ModalSubmitInteraction.js +37 -0
- package/dist/esm/structures/interactions/createInteraction.d.ts +4 -0
- package/dist/esm/structures/interactions/createInteraction.js +31 -0
- package/dist/esm/types.d.ts +369 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/util/Collection.d.ts +32 -0
- package/dist/esm/util/Collection.js +141 -0
- package/dist/esm/util/Permissions.d.ts +87 -0
- package/dist/esm/util/Permissions.js +109 -0
- package/dist/esm/util/Snowflake.d.ts +20 -0
- package/dist/esm/util/Snowflake.js +37 -0
- package/dist/esm/util/TypedEmitter.d.ts +17 -0
- package/dist/esm/util/TypedEmitter.js +2 -0
- package/dist/esm/util/constants.d.ts +78 -0
- package/dist/esm/util/constants.js +78 -0
- package/dist/esm/util/emoji.d.ts +8 -0
- package/dist/esm/util/emoji.js +7 -0
- package/dist/esm/util/formatters.d.ts +29 -0
- package/dist/esm/util/formatters.js +34 -0
- package/package.json +58 -6
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InviteManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
const ServerAssets_js_1 = require("../structures/ServerAssets.js");
|
|
6
|
+
const Collection_js_1 = require("../util/Collection.js");
|
|
7
|
+
class InviteManager {
|
|
8
|
+
client;
|
|
9
|
+
serverId;
|
|
10
|
+
constructor(client, serverId) {
|
|
11
|
+
this.client = client;
|
|
12
|
+
this.serverId = serverId;
|
|
13
|
+
}
|
|
14
|
+
async create(options = {}) {
|
|
15
|
+
const data = await this.client.rest.post(Routes_js_1.Routes.serverInvites(this.serverId), { body: options });
|
|
16
|
+
return new ServerAssets_js_1.Invite(this.client, data, this.serverId);
|
|
17
|
+
}
|
|
18
|
+
async fetch() {
|
|
19
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.serverInvites(this.serverId));
|
|
20
|
+
return new Collection_js_1.Collection(list.map((data) => [data.code, new ServerAssets_js_1.Invite(this.client, data, this.serverId)]));
|
|
21
|
+
}
|
|
22
|
+
async delete(code) {
|
|
23
|
+
await this.client.rest.delete(Routes_js_1.Routes.serverInvite(this.serverId, typeof code === 'string' ? code : code.code));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.InviteManager = InviteManager;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import { ServerMember } from '../structures/ServerMember.js';
|
|
3
|
+
import type { User } from '../structures/User.js';
|
|
4
|
+
import type { APIMember } from '../types.js';
|
|
5
|
+
import { Collection } from '../util/Collection.js';
|
|
6
|
+
import { CachedManager, type FetchOptions } from './CachedManager.js';
|
|
7
|
+
export interface Ban {
|
|
8
|
+
user: User;
|
|
9
|
+
reason: string | null;
|
|
10
|
+
createdAt: Date;
|
|
11
|
+
}
|
|
12
|
+
export declare class MemberManager extends CachedManager<ServerMember> {
|
|
13
|
+
readonly serverId: string;
|
|
14
|
+
constructor(client: Client, serverId: string);
|
|
15
|
+
_add(data: APIMember): ServerMember;
|
|
16
|
+
get me(): ServerMember | null;
|
|
17
|
+
fetch(): Promise<Collection<string, ServerMember>>;
|
|
18
|
+
fetch(userId: string, options?: FetchOptions): Promise<ServerMember>;
|
|
19
|
+
kick(user: string | {
|
|
20
|
+
id: string;
|
|
21
|
+
}, reason?: string): Promise<void>;
|
|
22
|
+
ban(user: string | {
|
|
23
|
+
id: string;
|
|
24
|
+
}, options?: {
|
|
25
|
+
reason?: string;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
unban(user: string | {
|
|
28
|
+
id: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
fetchBans(): Promise<Collection<string, Ban>>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberManager = void 0;
|
|
4
|
+
const BaffError_js_1 = require("../errors/BaffError.js");
|
|
5
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
6
|
+
const ServerMember_js_1 = require("../structures/ServerMember.js");
|
|
7
|
+
const Collection_js_1 = require("../util/Collection.js");
|
|
8
|
+
const CachedManager_js_1 = require("./CachedManager.js");
|
|
9
|
+
class MemberManager extends CachedManager_js_1.CachedManager {
|
|
10
|
+
serverId;
|
|
11
|
+
constructor(client, serverId) {
|
|
12
|
+
super(client);
|
|
13
|
+
this.serverId = serverId;
|
|
14
|
+
}
|
|
15
|
+
_add(data) {
|
|
16
|
+
const user = this.client.users._add({ ...data.user, status: data.status ?? data.user.status, customStatus: data.customStatus ?? data.user.customStatus });
|
|
17
|
+
const existing = this.cache.get(user.id);
|
|
18
|
+
if (existing)
|
|
19
|
+
return existing._patch(data);
|
|
20
|
+
const member = new ServerMember_js_1.ServerMember(this.client, this.serverId, user, data);
|
|
21
|
+
this.cache.set(user.id, member);
|
|
22
|
+
return member;
|
|
23
|
+
}
|
|
24
|
+
get me() {
|
|
25
|
+
const id = this.client.user?.id;
|
|
26
|
+
return id ? (this.cache.get(id) ?? null) : null;
|
|
27
|
+
}
|
|
28
|
+
async fetch(userId, options = {}) {
|
|
29
|
+
if (userId !== undefined) {
|
|
30
|
+
const cached = this.cache.get(userId);
|
|
31
|
+
if (cached && !options.force)
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.serverMembers(this.serverId));
|
|
35
|
+
const all = new Collection_js_1.Collection();
|
|
36
|
+
for (const data of list)
|
|
37
|
+
all.set(data.user.id, this._add(data));
|
|
38
|
+
for (const id of this.cache.keys())
|
|
39
|
+
if (!all.has(id))
|
|
40
|
+
this.cache.delete(id);
|
|
41
|
+
if (userId === undefined)
|
|
42
|
+
return all;
|
|
43
|
+
const found = all.get(userId);
|
|
44
|
+
if (!found)
|
|
45
|
+
throw new BaffError_js_1.BaffError('UNKNOWN_MEMBER', `User ${userId} is not a member of server ${this.serverId}.`);
|
|
46
|
+
return found;
|
|
47
|
+
}
|
|
48
|
+
kick(user, reason) {
|
|
49
|
+
return this.client.rest.delete(Routes_js_1.Routes.serverMember(this.serverId, this.resolveId(user)), { body: reason ? { reason } : undefined });
|
|
50
|
+
}
|
|
51
|
+
ban(user, options = {}) {
|
|
52
|
+
return this.client.rest.put(Routes_js_1.Routes.serverBan(this.serverId, this.resolveId(user)), { body: options });
|
|
53
|
+
}
|
|
54
|
+
unban(user) {
|
|
55
|
+
return this.client.rest.delete(Routes_js_1.Routes.serverBan(this.serverId, this.resolveId(user)));
|
|
56
|
+
}
|
|
57
|
+
async fetchBans() {
|
|
58
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.serverBans(this.serverId));
|
|
59
|
+
return new Collection_js_1.Collection(list.map((b) => [b.user.id, { user: this.client.users._add(b.user), reason: b.reason, createdAt: new Date(b.createdAt) }]));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.MemberManager = MemberManager;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type MessageOptions } from '../builders/messagePayload.js';
|
|
2
|
+
import type { TextBasedChannel } from '../structures/channels/TextBasedChannel.js';
|
|
3
|
+
import { Message } from '../structures/Message.js';
|
|
4
|
+
import type { APIMessage } from '../types.js';
|
|
5
|
+
import { Collection } from '../util/Collection.js';
|
|
6
|
+
import { type EmojiResolvable } from '../util/emoji.js';
|
|
7
|
+
export interface FetchMessagesOptions {
|
|
8
|
+
limit?: number;
|
|
9
|
+
before?: string;
|
|
10
|
+
after?: string;
|
|
11
|
+
around?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class MessageManager {
|
|
14
|
+
readonly channel: TextBasedChannel;
|
|
15
|
+
readonly cache: Collection<string, Message>;
|
|
16
|
+
constructor(channel: TextBasedChannel);
|
|
17
|
+
private get client();
|
|
18
|
+
_add(data: APIMessage): Message;
|
|
19
|
+
_remove(id: string): Message | null;
|
|
20
|
+
private trim;
|
|
21
|
+
fetch(id: string, options?: {
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}): Promise<Message>;
|
|
24
|
+
fetch(options?: FetchMessagesOptions): Promise<Collection<string, Message>>;
|
|
25
|
+
fetchPinned(): Promise<Collection<string, Message>>;
|
|
26
|
+
send(options: string | MessageOptions): Promise<Message>;
|
|
27
|
+
edit(id: string, options: string | MessageOptions): Promise<Message>;
|
|
28
|
+
delete(id: string): Promise<void>;
|
|
29
|
+
react(id: string, emoji: EmojiResolvable): Promise<void>;
|
|
30
|
+
pin(id: string): Promise<void>;
|
|
31
|
+
unpin(id: string): Promise<void>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessageManager = void 0;
|
|
4
|
+
const messagePayload_js_1 = require("../builders/messagePayload.js");
|
|
5
|
+
const BaffError_js_1 = require("../errors/BaffError.js");
|
|
6
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
7
|
+
const Message_js_1 = require("../structures/Message.js");
|
|
8
|
+
const Collection_js_1 = require("../util/Collection.js");
|
|
9
|
+
const emoji_js_1 = require("../util/emoji.js");
|
|
10
|
+
class MessageManager {
|
|
11
|
+
channel;
|
|
12
|
+
cache = new Collection_js_1.Collection();
|
|
13
|
+
constructor(channel) {
|
|
14
|
+
this.channel = channel;
|
|
15
|
+
}
|
|
16
|
+
get client() {
|
|
17
|
+
return this.channel.client;
|
|
18
|
+
}
|
|
19
|
+
_add(data) {
|
|
20
|
+
const existing = this.cache.get(data.id);
|
|
21
|
+
const message = existing ? existing._patch(data) : new Message_js_1.Message(this.client, data);
|
|
22
|
+
this.cache.delete(message.id);
|
|
23
|
+
this.cache.set(message.id, message);
|
|
24
|
+
this.trim();
|
|
25
|
+
return message;
|
|
26
|
+
}
|
|
27
|
+
_remove(id) {
|
|
28
|
+
const message = this.cache.get(id) ?? null;
|
|
29
|
+
this.cache.delete(id);
|
|
30
|
+
return message;
|
|
31
|
+
}
|
|
32
|
+
trim() {
|
|
33
|
+
const limit = this.client.options.messageCacheLimit;
|
|
34
|
+
while (this.cache.size > limit)
|
|
35
|
+
this.cache.delete(this.cache.firstKey());
|
|
36
|
+
}
|
|
37
|
+
async fetch(arg = {}, options = {}) {
|
|
38
|
+
if (typeof arg === 'string') {
|
|
39
|
+
const cached = this.cache.get(arg);
|
|
40
|
+
if (cached && !options.force)
|
|
41
|
+
return cached;
|
|
42
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.channelMessages(this.channel.id), { query: { around: arg, limit: 1 } });
|
|
43
|
+
const found = list.find((m) => m.id === arg);
|
|
44
|
+
if (!found)
|
|
45
|
+
throw new BaffError_js_1.BaffAPIError(404, 'GET', Routes_js_1.Routes.channelMessage(this.channel.id, arg), { error: { code: 'unknown_message', message: 'Message not found.' } });
|
|
46
|
+
return this._add(found);
|
|
47
|
+
}
|
|
48
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.channelMessages(this.channel.id), { query: { ...arg } });
|
|
49
|
+
return new Collection_js_1.Collection(list.map((data) => [data.id, this._add(data)]));
|
|
50
|
+
}
|
|
51
|
+
async fetchPinned() {
|
|
52
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.channelPins(this.channel.id));
|
|
53
|
+
return new Collection_js_1.Collection(list.map((data) => [data.id, this._add(data)]));
|
|
54
|
+
}
|
|
55
|
+
async send(options) {
|
|
56
|
+
const { body, files } = (0, messagePayload_js_1.resolveMessage)(options);
|
|
57
|
+
const data = await this.client.rest.post(Routes_js_1.Routes.channelMessages(this.channel.id), { body, files });
|
|
58
|
+
return this._add({ serverId: this.channel.serverId, ...data });
|
|
59
|
+
}
|
|
60
|
+
async edit(id, options) {
|
|
61
|
+
const { body } = (0, messagePayload_js_1.resolveMessage)(options);
|
|
62
|
+
const data = await this.client.rest.patch(Routes_js_1.Routes.channelMessage(this.channel.id, id), { body });
|
|
63
|
+
return this._add({ serverId: this.channel.serverId, ...data });
|
|
64
|
+
}
|
|
65
|
+
async delete(id) {
|
|
66
|
+
await this.client.rest.delete(Routes_js_1.Routes.channelMessage(this.channel.id, id));
|
|
67
|
+
this._remove(id);
|
|
68
|
+
}
|
|
69
|
+
async react(id, emoji) {
|
|
70
|
+
await this.client.rest.put(Routes_js_1.Routes.messageReaction(this.channel.id, id, (0, emoji_js_1.resolveEmoji)(emoji)));
|
|
71
|
+
}
|
|
72
|
+
async pin(id) {
|
|
73
|
+
await this.client.rest.put(Routes_js_1.Routes.channelPin(this.channel.id, id));
|
|
74
|
+
}
|
|
75
|
+
async unpin(id) {
|
|
76
|
+
await this.client.rest.delete(Routes_js_1.Routes.channelPin(this.channel.id, id));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.MessageManager = MessageManager;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import { Role, type RoleEditData } from '../structures/Role.js';
|
|
3
|
+
import type { APIRole } from '../types.js';
|
|
4
|
+
import { Collection } from '../util/Collection.js';
|
|
5
|
+
import { CachedManager } from './CachedManager.js';
|
|
6
|
+
export declare class RoleManager extends CachedManager<Role> {
|
|
7
|
+
readonly serverId: string;
|
|
8
|
+
constructor(client: Client, serverId: string);
|
|
9
|
+
_add(data: APIRole): Role;
|
|
10
|
+
_setAll(list: APIRole[]): {
|
|
11
|
+
created: Role[];
|
|
12
|
+
updated: [Role, Role][];
|
|
13
|
+
deleted: Role[];
|
|
14
|
+
};
|
|
15
|
+
get everyone(): Role | null;
|
|
16
|
+
get highest(): Role | null;
|
|
17
|
+
fetch(): Promise<Collection<string, Role>>;
|
|
18
|
+
create(data?: RoleEditData): Promise<Role>;
|
|
19
|
+
edit(role: string | Role, data: RoleEditData): Promise<Role>;
|
|
20
|
+
delete(role: string | Role): Promise<void>;
|
|
21
|
+
reorder(ids: string[]): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoleManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
const Role_js_1 = require("../structures/Role.js");
|
|
6
|
+
const CachedManager_js_1 = require("./CachedManager.js");
|
|
7
|
+
class RoleManager extends CachedManager_js_1.CachedManager {
|
|
8
|
+
serverId;
|
|
9
|
+
constructor(client, serverId) {
|
|
10
|
+
super(client);
|
|
11
|
+
this.serverId = serverId;
|
|
12
|
+
}
|
|
13
|
+
_add(data) {
|
|
14
|
+
const existing = this.cache.get(data.id);
|
|
15
|
+
if (existing)
|
|
16
|
+
return existing._patch(data);
|
|
17
|
+
const role = new Role_js_1.Role(this.client, this.serverId, data);
|
|
18
|
+
this.cache.set(role.id, role);
|
|
19
|
+
return role;
|
|
20
|
+
}
|
|
21
|
+
_setAll(list) {
|
|
22
|
+
const created = [];
|
|
23
|
+
const updated = [];
|
|
24
|
+
const seen = new Set();
|
|
25
|
+
for (const data of list) {
|
|
26
|
+
seen.add(data.id);
|
|
27
|
+
const existing = this.cache.get(data.id);
|
|
28
|
+
if (!existing)
|
|
29
|
+
created.push(this._add(data));
|
|
30
|
+
else
|
|
31
|
+
updated.push([existing._clone(), this._add(data)]);
|
|
32
|
+
}
|
|
33
|
+
const deleted = [];
|
|
34
|
+
for (const [id, role] of [...this.cache]) {
|
|
35
|
+
if (!seen.has(id)) {
|
|
36
|
+
this.cache.delete(id);
|
|
37
|
+
deleted.push(role);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return { created, updated, deleted };
|
|
41
|
+
}
|
|
42
|
+
get everyone() {
|
|
43
|
+
return this.cache.get(this.serverId) ?? null;
|
|
44
|
+
}
|
|
45
|
+
get highest() {
|
|
46
|
+
return this.cache.toSorted((a, b) => b.position - a.position).first() ?? null;
|
|
47
|
+
}
|
|
48
|
+
async fetch() {
|
|
49
|
+
this._setAll(await this.client.rest.get(Routes_js_1.Routes.serverRoles(this.serverId)));
|
|
50
|
+
return this.cache;
|
|
51
|
+
}
|
|
52
|
+
async create(data = {}) {
|
|
53
|
+
const created = await this.client.rest.post(Routes_js_1.Routes.serverRoles(this.serverId), { body: data.name ? { name: data.name } : {} });
|
|
54
|
+
const role = this._add(created);
|
|
55
|
+
const { name: _name, ...rest } = data;
|
|
56
|
+
return Object.keys(rest).length ? role.edit(rest) : role;
|
|
57
|
+
}
|
|
58
|
+
async edit(role, data) {
|
|
59
|
+
const target = typeof role === 'string' ? this.cache.get(role) : role;
|
|
60
|
+
if (target)
|
|
61
|
+
return target.edit(data);
|
|
62
|
+
return this._add(await this.client.rest.patch(Routes_js_1.Routes.serverRole(this.serverId, role), { body: (0, Role_js_1.roleEditBody)(data) }));
|
|
63
|
+
}
|
|
64
|
+
async delete(role) {
|
|
65
|
+
const id = this.resolveId(role);
|
|
66
|
+
await this.client.rest.delete(Routes_js_1.Routes.serverRole(this.serverId, id));
|
|
67
|
+
this.cache.delete(id);
|
|
68
|
+
}
|
|
69
|
+
async reorder(ids) {
|
|
70
|
+
await this.client.rest.put(Routes_js_1.Routes.serverRoles(this.serverId), { body: { ids } });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.RoleManager = RoleManager;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import type { Channel, ServerChannel } from '../structures/channels/ServerChannels.js';
|
|
3
|
+
import type { ChannelKind } from '../types.js';
|
|
4
|
+
import type { Collection } from '../util/Collection.js';
|
|
5
|
+
export interface CreateChannelOptions {
|
|
6
|
+
name: string;
|
|
7
|
+
kind?: Exclude<ChannelKind, 'thread' | 'dm' | 'group_dm' | 'stage'>;
|
|
8
|
+
parentId?: string | null;
|
|
9
|
+
}
|
|
10
|
+
export declare class ServerChannelManager {
|
|
11
|
+
private readonly client;
|
|
12
|
+
readonly serverId: string;
|
|
13
|
+
constructor(client: Client, serverId: string);
|
|
14
|
+
get cache(): Collection<string, ServerChannel>;
|
|
15
|
+
create(options: CreateChannelOptions): Promise<ServerChannel>;
|
|
16
|
+
delete(channel: string | {
|
|
17
|
+
id: string;
|
|
18
|
+
}): Promise<void>;
|
|
19
|
+
resolve(id: string): Channel | null;
|
|
20
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerChannelManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
class ServerChannelManager {
|
|
6
|
+
client;
|
|
7
|
+
serverId;
|
|
8
|
+
constructor(client, serverId) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
this.serverId = serverId;
|
|
11
|
+
}
|
|
12
|
+
get cache() {
|
|
13
|
+
return this.client.channels.forServer(this.serverId);
|
|
14
|
+
}
|
|
15
|
+
async create(options) {
|
|
16
|
+
const data = await this.client.rest.post(Routes_js_1.Routes.serverChannels(this.serverId), {
|
|
17
|
+
body: { name: options.name, kind: options.kind ?? 'text', parentId: options.parentId ?? null }
|
|
18
|
+
});
|
|
19
|
+
return this.client.channels._upsert({ ...data, serverId: this.serverId });
|
|
20
|
+
}
|
|
21
|
+
async delete(channel) {
|
|
22
|
+
const id = typeof channel === 'string' ? channel : channel.id;
|
|
23
|
+
await this.client.rest.delete(Routes_js_1.Routes.channel(id));
|
|
24
|
+
this.client.channels._remove(id);
|
|
25
|
+
}
|
|
26
|
+
resolve(id) {
|
|
27
|
+
return this.cache.get(id) ?? null;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ServerChannelManager = ServerChannelManager;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Server } from '../structures/Server.js';
|
|
2
|
+
import type { APIServer, APIServerSummary } from '../types.js';
|
|
3
|
+
import { Collection } from '../util/Collection.js';
|
|
4
|
+
import { CachedManager, type FetchOptions } from './CachedManager.js';
|
|
5
|
+
export declare class ServerManager extends CachedManager<Server> {
|
|
6
|
+
_add(data: APIServerSummary | APIServer): Server;
|
|
7
|
+
_remove(id: string): Server | null;
|
|
8
|
+
fetch(): Promise<Collection<string, Server>>;
|
|
9
|
+
fetch(id: string, options?: FetchOptions): Promise<Server>;
|
|
10
|
+
fetch(id: undefined, options: FetchOptions): Promise<Collection<string, Server>>;
|
|
11
|
+
leave(id: string): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
const Server_js_1 = require("../structures/Server.js");
|
|
6
|
+
const Collection_js_1 = require("../util/Collection.js");
|
|
7
|
+
const CachedManager_js_1 = require("./CachedManager.js");
|
|
8
|
+
const isDetail = (data) => 'channels' in data && 'roles' in data;
|
|
9
|
+
class ServerManager extends CachedManager_js_1.CachedManager {
|
|
10
|
+
_add(data) {
|
|
11
|
+
let server = this.cache.get(data.id);
|
|
12
|
+
if (!server) {
|
|
13
|
+
server = new Server_js_1.Server(this.client, data);
|
|
14
|
+
this.cache.set(server.id, server);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
server._patch(data);
|
|
18
|
+
}
|
|
19
|
+
if (isDetail(data))
|
|
20
|
+
server._applyDetail(data);
|
|
21
|
+
return server;
|
|
22
|
+
}
|
|
23
|
+
_remove(id) {
|
|
24
|
+
const server = this.cache.get(id) ?? null;
|
|
25
|
+
this.cache.delete(id);
|
|
26
|
+
for (const channel of server?.channels.cache.values() ?? [])
|
|
27
|
+
this.client.channels._remove(channel.id);
|
|
28
|
+
return server;
|
|
29
|
+
}
|
|
30
|
+
async fetch(id, options = {}) {
|
|
31
|
+
if (id !== undefined) {
|
|
32
|
+
const cached = this.cache.get(id);
|
|
33
|
+
if (cached?.detailed && !options.force)
|
|
34
|
+
return cached;
|
|
35
|
+
return this._add(await this.client.rest.get(Routes_js_1.Routes.server(id)));
|
|
36
|
+
}
|
|
37
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.servers());
|
|
38
|
+
const out = new Collection_js_1.Collection();
|
|
39
|
+
const queue = [...list];
|
|
40
|
+
const worker = async () => {
|
|
41
|
+
for (let next = queue.shift(); next; next = queue.shift()) {
|
|
42
|
+
try {
|
|
43
|
+
out.set(next.id, this._add(await this.client.rest.get(Routes_js_1.Routes.server(next.id))));
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
this.client.emit('debug', `Could not load server ${next.id}: ${error.message}`);
|
|
47
|
+
out.set(next.id, this._add(next));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
await Promise.all(Array.from({ length: Math.min(4, queue.length) }, worker));
|
|
52
|
+
for (const id of this.cache.keys())
|
|
53
|
+
if (!list.some((s) => s.id === id))
|
|
54
|
+
this._remove(id);
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
async leave(id) {
|
|
58
|
+
await this.client.rest.delete(Routes_js_1.Routes.serverLeave(id));
|
|
59
|
+
this._remove(id);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.ServerManager = ServerManager;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TextChannel, ThreadChannel } from '../structures/channels/ServerChannels.js';
|
|
2
|
+
import { Collection } from '../util/Collection.js';
|
|
3
|
+
export declare class ThreadManager {
|
|
4
|
+
private readonly channel;
|
|
5
|
+
constructor(channel: TextChannel);
|
|
6
|
+
create(options: {
|
|
7
|
+
name: string;
|
|
8
|
+
messageId?: string;
|
|
9
|
+
autoArchiveMinutes?: 60 | 1440 | 4320 | 10080;
|
|
10
|
+
}): Promise<ThreadChannel>;
|
|
11
|
+
fetch(): Promise<Collection<string, ThreadChannel>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ThreadManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
const Collection_js_1 = require("../util/Collection.js");
|
|
6
|
+
class ThreadManager {
|
|
7
|
+
channel;
|
|
8
|
+
constructor(channel) {
|
|
9
|
+
this.channel = channel;
|
|
10
|
+
}
|
|
11
|
+
async create(options) {
|
|
12
|
+
const data = await this.channel.client.rest.post(Routes_js_1.Routes.channelThreads(this.channel.id), { body: options });
|
|
13
|
+
return this.channel.client.channels._addThread(data);
|
|
14
|
+
}
|
|
15
|
+
async fetch() {
|
|
16
|
+
const list = await this.channel.client.rest.get(Routes_js_1.Routes.channelThreads(this.channel.id));
|
|
17
|
+
return new Collection_js_1.Collection(list.map((data) => [data.id, this.channel.client.channels._addThread(data)]));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.ThreadManager = ThreadManager;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { DMChannel } from '../structures/channels/DMChannel.js';
|
|
2
|
+
import { User } from '../structures/User.js';
|
|
3
|
+
import type { APIUser } from '../types.js';
|
|
4
|
+
import { CachedManager, type FetchOptions } from './CachedManager.js';
|
|
5
|
+
export declare class UserManager extends CachedManager<User> {
|
|
6
|
+
private readonly tags;
|
|
7
|
+
_add(data: APIUser): User;
|
|
8
|
+
fetchTags(): Promise<void>;
|
|
9
|
+
fetch(id: string, options?: FetchOptions): Promise<User>;
|
|
10
|
+
createDM(userId: string): Promise<DMChannel>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
const User_js_1 = require("../structures/User.js");
|
|
6
|
+
const CachedManager_js_1 = require("./CachedManager.js");
|
|
7
|
+
class UserManager extends CachedManager_js_1.CachedManager {
|
|
8
|
+
tags = new Map();
|
|
9
|
+
_add(data) {
|
|
10
|
+
const known = data.tag === undefined ? this.tags.get(data.id) : undefined;
|
|
11
|
+
const patch = known ? { ...data, tag: known } : data;
|
|
12
|
+
const existing = this.cache.get(data.id);
|
|
13
|
+
if (existing)
|
|
14
|
+
return existing._patch(patch);
|
|
15
|
+
const user = new User_js_1.User(this.client, patch);
|
|
16
|
+
this.cache.set(user.id, user);
|
|
17
|
+
return user;
|
|
18
|
+
}
|
|
19
|
+
async fetchTags() {
|
|
20
|
+
const list = await this.client.rest.get(Routes_js_1.Routes.userTags());
|
|
21
|
+
for (const { id, tag } of list) {
|
|
22
|
+
this.tags.set(id, tag);
|
|
23
|
+
this.cache.get(id)?._patch({ tag });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async fetch(id, options = {}) {
|
|
27
|
+
const cached = this.cache.get(id);
|
|
28
|
+
if (cached && !options.force)
|
|
29
|
+
return cached;
|
|
30
|
+
const profile = await this.client.rest.get(Routes_js_1.Routes.userProfile(id));
|
|
31
|
+
return this._add(profile.user);
|
|
32
|
+
}
|
|
33
|
+
async createDM(userId) {
|
|
34
|
+
const data = await this.client.rest.post(Routes_js_1.Routes.dms(), { body: { recipientId: userId } });
|
|
35
|
+
return this.client.channels._addDM(data);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.UserManager = UserManager;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Client } from '../client/Client.js';
|
|
2
|
+
import type { APIVoiceJoin } from '../types.js';
|
|
3
|
+
export declare class VoiceManager {
|
|
4
|
+
private readonly client;
|
|
5
|
+
constructor(client: Client);
|
|
6
|
+
join(channelId: string): Promise<APIVoiceJoin>;
|
|
7
|
+
leave(serverId?: string): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VoiceManager = void 0;
|
|
4
|
+
const Routes_js_1 = require("../rest/Routes.js");
|
|
5
|
+
class VoiceManager {
|
|
6
|
+
client;
|
|
7
|
+
constructor(client) {
|
|
8
|
+
this.client = client;
|
|
9
|
+
}
|
|
10
|
+
join(channelId) {
|
|
11
|
+
return this.client.rest.post(Routes_js_1.Routes.channelVoice(channelId));
|
|
12
|
+
}
|
|
13
|
+
async leave(serverId) {
|
|
14
|
+
await this.client.rest.delete(Routes_js_1.Routes.voice(), { query: { serverId } });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.VoiceManager = VoiceManager;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TypedEmitter } from '../util/TypedEmitter.js';
|
|
2
|
+
import { type RawFile } from './files.js';
|
|
3
|
+
export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
4
|
+
export type QueryValue = string | number | boolean | undefined | null | readonly (string | number)[];
|
|
5
|
+
export interface RESTOptions {
|
|
6
|
+
api?: string;
|
|
7
|
+
token?: string;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
retries?: number;
|
|
10
|
+
maxRateLimitRetries?: number;
|
|
11
|
+
userAgent?: string;
|
|
12
|
+
fetch?: typeof fetch;
|
|
13
|
+
}
|
|
14
|
+
export interface RequestOptions {
|
|
15
|
+
query?: Record<string, QueryValue>;
|
|
16
|
+
body?: unknown;
|
|
17
|
+
files?: readonly RawFile[];
|
|
18
|
+
auth?: boolean;
|
|
19
|
+
signal?: AbortSignal;
|
|
20
|
+
raw?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface RateLimitInfo {
|
|
23
|
+
method: HTTPMethod;
|
|
24
|
+
path: string;
|
|
25
|
+
retryAfter: number;
|
|
26
|
+
global: boolean;
|
|
27
|
+
}
|
|
28
|
+
type RESTEvents = {
|
|
29
|
+
rateLimited: [RateLimitInfo];
|
|
30
|
+
debug: [string];
|
|
31
|
+
};
|
|
32
|
+
export declare function bucketKey(method: HTTPMethod, path: string): string;
|
|
33
|
+
export declare class REST extends TypedEmitter<RESTEvents> {
|
|
34
|
+
readonly api: string;
|
|
35
|
+
token: string | null;
|
|
36
|
+
private readonly timeout;
|
|
37
|
+
private readonly retries;
|
|
38
|
+
private readonly maxRateLimitRetries;
|
|
39
|
+
private readonly userAgent;
|
|
40
|
+
private readonly fetchImpl;
|
|
41
|
+
private readonly buckets;
|
|
42
|
+
private readonly sent;
|
|
43
|
+
private globalBlockedUntil;
|
|
44
|
+
constructor(options?: RESTOptions);
|
|
45
|
+
setToken(token: string): this;
|
|
46
|
+
get<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
47
|
+
post<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
48
|
+
put<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
49
|
+
patch<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
50
|
+
delete<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
51
|
+
request<T = unknown>(method: HTTPMethod, path: string, options?: RequestOptions): Promise<T>;
|
|
52
|
+
private send;
|
|
53
|
+
private waitTurn;
|
|
54
|
+
private url;
|
|
55
|
+
private init;
|
|
56
|
+
private backoff;
|
|
57
|
+
}
|
|
58
|
+
export {};
|