@mostfeatured/dbi 0.1.32 → 0.1.33
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/{DBI.d.ts → src/DBI.d.ts} +4 -0
- package/dist/src/DBI.d.ts.map +1 -0
- package/dist/{DBI.js → src/DBI.js} +15 -71
- package/dist/src/DBI.js.map +1 -0
- package/dist/src/Events.d.ts.map +1 -0
- package/dist/src/Events.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/methods/handleMessageCommands.d.ts.map +1 -0
- package/dist/src/methods/handleMessageCommands.js.map +1 -0
- package/dist/src/methods/hookEventListeners.d.ts.map +1 -0
- package/dist/src/methods/hookEventListeners.js.map +1 -0
- package/dist/src/methods/hookInteractionListeners.d.ts.map +1 -0
- package/dist/{methods → src/methods}/hookInteractionListeners.js +62 -20
- package/dist/src/methods/hookInteractionListeners.js.map +1 -0
- package/dist/src/methods/publishInteractions.d.ts.map +1 -0
- package/dist/src/methods/publishInteractions.js.map +1 -0
- package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
- package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +1 -0
- package/dist/src/types/Builders/ButtonBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ButtonBuilder.js.map +1 -0
- package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/ModalBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ModalBuilder.js.map +1 -0
- package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/ChatInput/ChatInput.d.ts.map +1 -0
- package/dist/src/types/ChatInput/ChatInput.js.map +1 -0
- package/dist/{types → src/types}/ChatInput/ChatInputOptions.d.ts +1 -1
- package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
- package/dist/src/types/ChatInput/ChatInputOptions.js.map +1 -0
- package/dist/src/types/Components/Button.d.ts.map +1 -0
- package/dist/src/types/Components/Button.js.map +1 -0
- package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/ChannelSelectMenu.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts +53 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js +60 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.d.ts +19 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.js +28 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts +4 -0
- package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/parser.js +260 -0
- package/dist/src/types/Components/HTMLComponentsV2/parser.js.map +1 -0
- package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/MentionableSelectMenu.js.map +1 -0
- package/dist/src/types/Components/Modal.d.ts.map +1 -0
- package/dist/src/types/Components/Modal.js.map +1 -0
- package/dist/src/types/Components/RoleSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/RoleSelectMenu.js.map +1 -0
- package/dist/src/types/Components/StringSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/StringSelectMenu.js.map +1 -0
- package/dist/src/types/Components/UserSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/UserSelectMenu.js.map +1 -0
- package/dist/src/types/Event.d.ts.map +1 -0
- package/dist/src/types/Event.js.map +1 -0
- package/dist/{types → src/types}/Interaction.d.ts +6 -4
- package/dist/src/types/Interaction.d.ts.map +1 -0
- package/dist/src/types/Interaction.js.map +1 -0
- package/dist/src/types/other/CustomEvent.d.ts.map +1 -0
- package/dist/src/types/other/CustomEvent.js.map +1 -0
- package/dist/src/types/other/FakeMessageInteraction.d.ts.map +1 -0
- package/dist/src/types/other/FakeMessageInteraction.js.map +1 -0
- package/dist/src/types/other/InteractionLocale.d.ts.map +1 -0
- package/dist/src/types/other/InteractionLocale.js.map +1 -0
- package/dist/src/types/other/Locale.d.ts.map +1 -0
- package/dist/src/types/other/Locale.js.map +1 -0
- package/dist/src/types/other/MessageContextMenu.d.ts.map +1 -0
- package/dist/src/types/other/MessageContextMenu.js.map +1 -0
- package/dist/src/types/other/UserContextMenu.d.ts.map +1 -0
- package/dist/src/types/other/UserContextMenu.js.map +1 -0
- package/dist/src/utils/MemoryStore.d.ts.map +1 -0
- package/dist/src/utils/MemoryStore.js.map +1 -0
- package/dist/src/utils/UtilTypes.d.ts.map +1 -0
- package/dist/src/utils/UtilTypes.js.map +1 -0
- package/dist/{utils → src/utils}/customId.d.ts +2 -1
- package/dist/src/utils/customId.d.ts.map +1 -0
- package/dist/{utils → src/utils}/customId.js +6 -2
- package/dist/src/utils/customId.js.map +1 -0
- package/dist/src/utils/permissions.d.ts.map +1 -0
- package/dist/src/utils/permissions.js.map +1 -0
- package/dist/src/utils/recursiveImport.d.ts.map +1 -0
- package/dist/src/utils/recursiveImport.js.map +1 -0
- package/dist/src/utils/recursiveUnload.d.ts.map +1 -0
- package/dist/src/utils/recursiveUnload.js.map +1 -0
- package/dist/src/utils/unloadModule.d.ts.map +1 -0
- package/dist/src/utils/unloadModule.js.map +1 -0
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +90 -0
- package/dist/test.js.map +1 -0
- package/package.json +7 -4
- package/src/DBI.ts +30 -113
- package/src/methods/hookInteractionListeners.ts +79 -34
- package/src/types/ChatInput/ChatInputOptions.ts +6 -6
- package/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.ts +78 -0
- package/src/types/Components/HTMLComponentsV2/index.ts +43 -0
- package/src/types/Components/HTMLComponentsV2/parser.ts +279 -0
- package/src/types/Interaction.ts +7 -4
- package/src/utils/customId.ts +6 -3
- package/test.ts +91 -0
- package/dist/DBI.d.ts.map +0 -1
- package/dist/DBI.js.map +0 -1
- package/dist/Events.d.ts.map +0 -1
- package/dist/Events.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/methods/handleMessageCommands.d.ts.map +0 -1
- package/dist/methods/handleMessageCommands.js.map +0 -1
- package/dist/methods/hookEventListeners.d.ts.map +0 -1
- package/dist/methods/hookEventListeners.js.map +0 -1
- package/dist/methods/hookInteractionListeners.d.ts.map +0 -1
- package/dist/methods/hookInteractionListeners.js.map +0 -1
- package/dist/methods/publishInteractions.d.ts.map +0 -1
- package/dist/methods/publishInteractions.js.map +0 -1
- package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
- package/dist/types/ApplicationRoleConnectionMetadata.js.map +0 -1
- package/dist/types/Builders/ButtonBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ButtonBuilder.js.map +0 -1
- package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/ModalBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ModalBuilder.js.map +0 -1
- package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/StringSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/UserSelectMenuBuilder.js.map +0 -1
- package/dist/types/ChatInput/ChatInput.d.ts.map +0 -1
- package/dist/types/ChatInput/ChatInput.js.map +0 -1
- package/dist/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
- package/dist/types/ChatInput/ChatInputOptions.js.map +0 -1
- package/dist/types/Components/Button.d.ts.map +0 -1
- package/dist/types/Components/Button.js.map +0 -1
- package/dist/types/Components/ChannelSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/ChannelSelectMenu.js.map +0 -1
- package/dist/types/Components/MentionableSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/MentionableSelectMenu.js.map +0 -1
- package/dist/types/Components/Modal.d.ts.map +0 -1
- package/dist/types/Components/Modal.js.map +0 -1
- package/dist/types/Components/RoleSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/RoleSelectMenu.js.map +0 -1
- package/dist/types/Components/StringSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/StringSelectMenu.js.map +0 -1
- package/dist/types/Components/UserSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/UserSelectMenu.js.map +0 -1
- package/dist/types/Event.d.ts.map +0 -1
- package/dist/types/Event.js.map +0 -1
- package/dist/types/Interaction.d.ts.map +0 -1
- package/dist/types/Interaction.js.map +0 -1
- package/dist/types/other/CustomEvent.d.ts.map +0 -1
- package/dist/types/other/CustomEvent.js.map +0 -1
- package/dist/types/other/FakeMessageInteraction.d.ts.map +0 -1
- package/dist/types/other/FakeMessageInteraction.js.map +0 -1
- package/dist/types/other/InteractionLocale.d.ts.map +0 -1
- package/dist/types/other/InteractionLocale.js.map +0 -1
- package/dist/types/other/Locale.d.ts.map +0 -1
- package/dist/types/other/Locale.js.map +0 -1
- package/dist/types/other/MessageContextMenu.d.ts.map +0 -1
- package/dist/types/other/MessageContextMenu.js.map +0 -1
- package/dist/types/other/UserContextMenu.d.ts.map +0 -1
- package/dist/types/other/UserContextMenu.js.map +0 -1
- package/dist/utils/MemoryStore.d.ts.map +0 -1
- package/dist/utils/MemoryStore.js.map +0 -1
- package/dist/utils/UtilTypes.d.ts.map +0 -1
- package/dist/utils/UtilTypes.js.map +0 -1
- package/dist/utils/customId.d.ts.map +0 -1
- package/dist/utils/customId.js.map +0 -1
- package/dist/utils/permissions.d.ts.map +0 -1
- package/dist/utils/permissions.js.map +0 -1
- package/dist/utils/recursiveImport.d.ts.map +0 -1
- package/dist/utils/recursiveImport.js.map +0 -1
- package/dist/utils/recursiveUnload.d.ts.map +0 -1
- package/dist/utils/recursiveUnload.js.map +0 -1
- package/dist/utils/unloadModule.d.ts.map +0 -1
- package/dist/utils/unloadModule.js.map +0 -1
- /package/dist/{Events.d.ts → src/Events.d.ts} +0 -0
- /package/dist/{Events.js → src/Events.js} +0 -0
- /package/dist/{data → src/data}/eventMap.json +0 -0
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{methods → src/methods}/handleMessageCommands.d.ts +0 -0
- /package/dist/{methods → src/methods}/handleMessageCommands.js +0 -0
- /package/dist/{methods → src/methods}/hookEventListeners.d.ts +0 -0
- /package/dist/{methods → src/methods}/hookEventListeners.js +0 -0
- /package/dist/{methods → src/methods}/hookInteractionListeners.d.ts +0 -0
- /package/dist/{methods → src/methods}/publishInteractions.d.ts +0 -0
- /package/dist/{methods → src/methods}/publishInteractions.js +0 -0
- /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
- /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.js +0 -0
- /package/dist/{types → src/types}/Builders/ButtonBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ButtonBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/ModalBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ModalBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInput.d.ts +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInput.js +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInputOptions.js +0 -0
- /package/dist/{types → src/types}/Components/Button.d.ts +0 -0
- /package/dist/{types → src/types}/Components/Button.js +0 -0
- /package/dist/{types → src/types}/Components/ChannelSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/ChannelSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/MentionableSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/MentionableSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/Modal.d.ts +0 -0
- /package/dist/{types → src/types}/Components/Modal.js +0 -0
- /package/dist/{types → src/types}/Components/RoleSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/RoleSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/StringSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/StringSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/UserSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/UserSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Event.d.ts +0 -0
- /package/dist/{types → src/types}/Event.js +0 -0
- /package/dist/{types → src/types}/Interaction.js +0 -0
- /package/dist/{types → src/types}/other/CustomEvent.d.ts +0 -0
- /package/dist/{types → src/types}/other/CustomEvent.js +0 -0
- /package/dist/{types → src/types}/other/FakeMessageInteraction.d.ts +0 -0
- /package/dist/{types → src/types}/other/FakeMessageInteraction.js +0 -0
- /package/dist/{types → src/types}/other/InteractionLocale.d.ts +0 -0
- /package/dist/{types → src/types}/other/InteractionLocale.js +0 -0
- /package/dist/{types → src/types}/other/Locale.d.ts +0 -0
- /package/dist/{types → src/types}/other/Locale.js +0 -0
- /package/dist/{types → src/types}/other/MessageContextMenu.d.ts +0 -0
- /package/dist/{types → src/types}/other/MessageContextMenu.js +0 -0
- /package/dist/{types → src/types}/other/UserContextMenu.d.ts +0 -0
- /package/dist/{types → src/types}/other/UserContextMenu.js +0 -0
- /package/dist/{utils → src/utils}/MemoryStore.d.ts +0 -0
- /package/dist/{utils → src/utils}/MemoryStore.js +0 -0
- /package/dist/{utils → src/utils}/UtilTypes.d.ts +0 -0
- /package/dist/{utils → src/utils}/UtilTypes.js +0 -0
- /package/dist/{utils → src/utils}/permissions.d.ts +0 -0
- /package/dist/{utils → src/utils}/permissions.js +0 -0
- /package/dist/{utils → src/utils}/recursiveImport.d.ts +0 -0
- /package/dist/{utils → src/utils}/recursiveImport.js +0 -0
- /package/dist/{utils → src/utils}/recursiveUnload.d.ts +0 -0
- /package/dist/{utils → src/utils}/recursiveUnload.js +0 -0
- /package/dist/{utils → src/utils}/unloadModule.d.ts +0 -0
- /package/dist/{utils → src/utils}/unloadModule.js +0 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { JSDOM } from "jsdom";
|
|
2
|
+
import { Eta } from "eta";
|
|
3
|
+
import { DBI } from "../../../DBI";
|
|
4
|
+
import { NamespaceEnums } from "../../../../generated/namespaceData";
|
|
5
|
+
import { ButtonStyle, ComponentType, TextInputStyle } from "discord.js";
|
|
6
|
+
import { buildCustomId } from "../../../utils/customId";
|
|
7
|
+
|
|
8
|
+
const eta = new Eta();
|
|
9
|
+
|
|
10
|
+
function parseElementDataAttributes(attributes: NamedNodeMap): any[] {
|
|
11
|
+
let list = Array.from(attributes)
|
|
12
|
+
.filter(attr => attr.nodeName.startsWith("data-"))
|
|
13
|
+
.map(attr => {
|
|
14
|
+
let splited = attr.nodeName.slice(5).split(":");
|
|
15
|
+
let index = parseInt(splited[0]);
|
|
16
|
+
let value;
|
|
17
|
+
switch (splited[1]) {
|
|
18
|
+
case "number": value = Number(attr.nodeValue!); break;
|
|
19
|
+
case "boolean": value = attr.nodeValue === "true"; break;
|
|
20
|
+
case "json": value = JSON.parse(attr.nodeValue!); break;
|
|
21
|
+
case "string":
|
|
22
|
+
default: value = attr.nodeValue; break;
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
index,
|
|
26
|
+
value
|
|
27
|
+
};
|
|
28
|
+
})
|
|
29
|
+
.sort((a, b) => a.index - b.index)
|
|
30
|
+
.map(i => i.value);
|
|
31
|
+
let data = attributes.getNamedItem("data")?.nodeValue;
|
|
32
|
+
return list.length ? list : data ? [data] : [];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function parseCustomIdAttributes(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element): string {
|
|
36
|
+
let customId = element.getAttribute("custom-id");
|
|
37
|
+
if (!customId) {
|
|
38
|
+
let name = element.getAttribute("name");
|
|
39
|
+
if (!name) throw new Error("String Select Menu must have a name or custom-id attribute.");
|
|
40
|
+
customId = buildCustomId(
|
|
41
|
+
dbi,
|
|
42
|
+
dbiName,
|
|
43
|
+
[
|
|
44
|
+
name,
|
|
45
|
+
...parseElementDataAttributes(element.attributes),
|
|
46
|
+
],
|
|
47
|
+
element.hasAttribute("ttl") ? parseInt(element.getAttribute("ttl")!) : undefined,
|
|
48
|
+
true
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
return customId;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function parseActionRow(dbi: DBI<NamespaceEnums>, dbiName: string, actionRow: Element) {
|
|
55
|
+
return {
|
|
56
|
+
type: ComponentType.ActionRow,
|
|
57
|
+
components: Array.from(actionRow.children).map((element) => {
|
|
58
|
+
return parseElement(dbi, dbiName, element);
|
|
59
|
+
})
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function parseButton(dbi: DBI<NamespaceEnums>, dbiName: string, button: Element) {
|
|
64
|
+
return {
|
|
65
|
+
type: ComponentType.Button,
|
|
66
|
+
style: ButtonStyle[button.getAttribute("button-style") || button.getAttribute("style") || "Primary"],
|
|
67
|
+
label: button.textContent?.trim(),
|
|
68
|
+
emoji: button.getAttribute("emoji"),
|
|
69
|
+
custom_id: parseCustomIdAttributes(dbi, dbiName, button),
|
|
70
|
+
disabled: button.hasAttribute("disabled"),
|
|
71
|
+
url: button.getAttribute("url"),
|
|
72
|
+
sku_id: button.getAttribute("sku-id"),
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function parseStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, stringSelect: Element) {
|
|
77
|
+
let minValues = parseInt(stringSelect.getAttribute("min-values"));
|
|
78
|
+
let maxValues = parseInt(stringSelect.getAttribute("max-values"));
|
|
79
|
+
|
|
80
|
+
let options = Array.from(stringSelect.querySelectorAll("option")).map(option => {
|
|
81
|
+
return {
|
|
82
|
+
label: option.textContent?.trim(),
|
|
83
|
+
value: option.getAttribute("value"),
|
|
84
|
+
description: option.getAttribute("description"),
|
|
85
|
+
emoji: option.getAttribute("emoji"),
|
|
86
|
+
default: option.hasAttribute("default")
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
return {
|
|
91
|
+
type: ComponentType.StringSelect,
|
|
92
|
+
custom_id: parseCustomIdAttributes(dbi, dbiName, stringSelect),
|
|
93
|
+
placeholder: stringSelect.getAttribute("placeholder"),
|
|
94
|
+
min_values: !isNaN(minValues) ? minValues : undefined,
|
|
95
|
+
max_values: !isNaN(maxValues) ? maxValues : undefined,
|
|
96
|
+
disabled: stringSelect.hasAttribute("disabled"),
|
|
97
|
+
options
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function parseNonStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, userSelect: Element, type: ComponentType) {
|
|
102
|
+
let minValues = parseInt(userSelect.getAttribute("min-values"));
|
|
103
|
+
let maxValues = parseInt(userSelect.getAttribute("max-values"));
|
|
104
|
+
|
|
105
|
+
let options = Array.from(userSelect.querySelectorAll("option")).map(option => {
|
|
106
|
+
return {
|
|
107
|
+
id: option.textContent?.trim() || option.getAttribute("id"),
|
|
108
|
+
type: option.getAttribute("type")
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
return {
|
|
113
|
+
type,
|
|
114
|
+
custom_id: parseCustomIdAttributes(dbi, dbiName, userSelect),
|
|
115
|
+
placeholder: userSelect.getAttribute("placeholder"),
|
|
116
|
+
min_values: !isNaN(minValues) ? minValues : undefined,
|
|
117
|
+
max_values: !isNaN(maxValues) ? maxValues : undefined,
|
|
118
|
+
disabled: userSelect.hasAttribute("disabled"),
|
|
119
|
+
options
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
function parseSection(dbi: DBI<NamespaceEnums>, dbiName: string, sectionElement: Element) {
|
|
124
|
+
const childs = [...sectionElement.children];
|
|
125
|
+
const components = childs.find(el => el.tagName === "COMPONENTS");
|
|
126
|
+
const children = Array.from(components?.children || []);
|
|
127
|
+
|
|
128
|
+
const accessory = childs.find(el => el.tagName === "ACCESSORY")?.children?.[0];
|
|
129
|
+
|
|
130
|
+
return {
|
|
131
|
+
type: ComponentType.Section,
|
|
132
|
+
components: children.map((element) => {
|
|
133
|
+
return parseElement(dbi, dbiName, element);
|
|
134
|
+
}),
|
|
135
|
+
...(accessory ? { accessory: parseElement(dbi, dbiName, accessory) } : {})
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function parseTextDisplay(dbi: DBI<NamespaceEnums>, dbiName: string, textDisplayElement: Element) {
|
|
140
|
+
return {
|
|
141
|
+
type: ComponentType.TextDisplay,
|
|
142
|
+
content: textDisplayElement.textContent?.trim() || "",
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function parseThumbnail(dbi: DBI<NamespaceEnums>, dbiName: string, thumbnailElement: Element) {
|
|
147
|
+
return {
|
|
148
|
+
type: ComponentType.Thumbnail,
|
|
149
|
+
media: {
|
|
150
|
+
url: thumbnailElement.getAttribute("url")
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function parseMediaGallery(dbi: DBI<NamespaceEnums>, dbiName: string, mediaGalleryElement: Element) {
|
|
156
|
+
return {
|
|
157
|
+
type: ComponentType.MediaGallery,
|
|
158
|
+
items: Array.from(mediaGalleryElement.querySelectorAll("item")).map(item => {
|
|
159
|
+
return {
|
|
160
|
+
media: {
|
|
161
|
+
url: item.getAttribute("url")
|
|
162
|
+
},
|
|
163
|
+
description: item.textContent?.trim() || item.getAttribute("description") || "",
|
|
164
|
+
spoiler: item.hasAttribute("spoiler"),
|
|
165
|
+
};
|
|
166
|
+
})
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
function parseFile(dbi: DBI<NamespaceEnums>, dbiName: string, fileElement: Element) {
|
|
171
|
+
return {
|
|
172
|
+
type: ComponentType.File,
|
|
173
|
+
file: {
|
|
174
|
+
url: fileElement.getAttribute("url"),
|
|
175
|
+
},
|
|
176
|
+
spoiler: fileElement.hasAttribute("spoiler"),
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function parseSeparator(dbi: DBI<NamespaceEnums>, dbiName: string, separatorElement: Element) {
|
|
181
|
+
return {
|
|
182
|
+
type: ComponentType.Separator,
|
|
183
|
+
divider: separatorElement.hasAttribute("divider"),
|
|
184
|
+
spacing: parseInt(separatorElement.getAttribute("spacing") || '1'),
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
function parseContainer(dbi: DBI<NamespaceEnums>, dbiName: string, containerElement: Element) {
|
|
189
|
+
const components = [...containerElement.children].find(el => el.tagName === "COMPONENTS");
|
|
190
|
+
const children = Array.from(components?.children || []);
|
|
191
|
+
|
|
192
|
+
return {
|
|
193
|
+
type: ComponentType.Container,
|
|
194
|
+
components: children.map((element) => {
|
|
195
|
+
return parseElement(dbi, dbiName, element);
|
|
196
|
+
}),
|
|
197
|
+
accent_color: parseColor(containerElement.getAttribute("accent-color") || ""),
|
|
198
|
+
spoiler: containerElement.hasAttribute("spoiler"),
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function parseTextInput(dbi: DBI<NamespaceEnums>, dbiName: string, textInputSelect: Element) {
|
|
203
|
+
let minLength = parseInt(textInputSelect.getAttribute("min-length"));
|
|
204
|
+
let maxLength = parseInt(textInputSelect.getAttribute("max-length"));
|
|
205
|
+
|
|
206
|
+
return {
|
|
207
|
+
type: ComponentType.TextInput,
|
|
208
|
+
custom_id: textInputSelect.getAttribute("custom-id") || textInputSelect.getAttribute("id"),
|
|
209
|
+
style: TextInputStyle[textInputSelect.getAttribute("input-style") || textInputSelect.getAttribute("style") || "Short"],
|
|
210
|
+
label: textInputSelect.getAttribute("label"),
|
|
211
|
+
placeholder: textInputSelect.getAttribute("placeholder"),
|
|
212
|
+
min_length: !isNaN(minLength) ? minLength : undefined,
|
|
213
|
+
max_length: !isNaN(maxLength) ? maxLength : undefined,
|
|
214
|
+
required: textInputSelect.hasAttribute("required"),
|
|
215
|
+
value: textInputSelect.textContent?.trim() || textInputSelect.getAttribute("value"),
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function parseColor(color: string) {
|
|
220
|
+
if (!color) return;
|
|
221
|
+
if (/\d{3,6}/.test(color)) return parseInt(color, 10);
|
|
222
|
+
if (color.startsWith("#")) return parseInt(color.slice(1), 16);
|
|
223
|
+
if (color.startsWith("0x")) return parseInt(color.slice(2), 16);
|
|
224
|
+
if (color.startsWith("rgb(")) {
|
|
225
|
+
const rgb = color.slice(4, -1).split(",").map(Number);
|
|
226
|
+
return (rgb[0] << 16) + (rgb[1] << 8) + rgb[2];
|
|
227
|
+
}
|
|
228
|
+
return parseInt(color, 16);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function parseElement(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element) {
|
|
232
|
+
switch (element.tagName) {
|
|
233
|
+
case "ACTION-ROW":
|
|
234
|
+
return parseActionRow(dbi, dbiName, element);
|
|
235
|
+
case "BUTTON":
|
|
236
|
+
return parseButton(dbi, dbiName, element);
|
|
237
|
+
case "STRING-SELECT":
|
|
238
|
+
return parseStringSelect(dbi, dbiName, element);
|
|
239
|
+
case "USER-SELECT":
|
|
240
|
+
return parseNonStringSelect(dbi, dbiName, element, ComponentType.UserSelect);
|
|
241
|
+
case "ROLE-SELECT":
|
|
242
|
+
return parseNonStringSelect(dbi, dbiName, element, ComponentType.RoleSelect);
|
|
243
|
+
case "MENTIONABLE-SELECT":
|
|
244
|
+
return parseNonStringSelect(dbi, dbiName, element, ComponentType.MentionableSelect);
|
|
245
|
+
case "CHANNEL-SELECT":
|
|
246
|
+
return parseNonStringSelect(dbi, dbiName, element, ComponentType.ChannelSelect);
|
|
247
|
+
case "SECTION":
|
|
248
|
+
return parseSection(dbi, dbiName, element);
|
|
249
|
+
case "TEXT-DISPLAY":
|
|
250
|
+
return parseTextDisplay(dbi, dbiName, element);
|
|
251
|
+
case "THUMBNAIL":
|
|
252
|
+
return parseThumbnail(dbi, dbiName, element);
|
|
253
|
+
case "MEDIA-GALLERY":
|
|
254
|
+
return parseMediaGallery(dbi, dbiName, element);
|
|
255
|
+
case "FILE":
|
|
256
|
+
return parseFile(dbi, dbiName, element);
|
|
257
|
+
case "SEPARATOR":
|
|
258
|
+
return parseSeparator(dbi, dbiName, element);
|
|
259
|
+
case "CONTAINER":
|
|
260
|
+
return parseContainer(dbi, dbiName, element);
|
|
261
|
+
case "TEXT-INPUT":
|
|
262
|
+
return parseTextInput(dbi, dbiName, element);
|
|
263
|
+
default:
|
|
264
|
+
throw new Error(`Unknown HTML component: ${element.tagName}`);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
export function parseHTMLComponentsV2(dbi: DBI<NamespaceEnums>, template: string, dbiName: string, { data }: any = {}) {
|
|
269
|
+
const { window: { document } } = new JSDOM(eta.renderString(template, data));
|
|
270
|
+
|
|
271
|
+
const components = [...document.body.children].find(el => el.tagName === "COMPONENTS");
|
|
272
|
+
const children = Array.from(components?.children || []);
|
|
273
|
+
|
|
274
|
+
if (!children.length) throw new Error("No components found in the provided HTML template.");
|
|
275
|
+
|
|
276
|
+
return children.map((element) => {
|
|
277
|
+
return parseElement(dbi, dbiName, element);
|
|
278
|
+
});
|
|
279
|
+
}
|
package/src/types/Interaction.ts
CHANGED
|
@@ -8,8 +8,9 @@ import { DBIMessageContextMenu } from "./other/MessageContextMenu";
|
|
|
8
8
|
import { DBIModal } from "./Components/Modal";
|
|
9
9
|
import { DBIStringSelectMenu } from "./Components/StringSelectMenu";
|
|
10
10
|
import { DBIUserContextMenu } from "./other/UserContextMenu";
|
|
11
|
+
import { DBIHTMLComponentsV2 } from "./Components/HTMLComponentsV2";
|
|
11
12
|
|
|
12
|
-
export type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;
|
|
13
|
+
export type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace> | DBIHTMLComponentsV2<TNamespace>;
|
|
13
14
|
|
|
14
15
|
export interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {
|
|
15
16
|
interaction:
|
|
@@ -29,6 +30,7 @@ export interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {
|
|
|
29
30
|
setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;
|
|
30
31
|
other: Record<string, any>;
|
|
31
32
|
clientNamespace: NamespaceData[TNamespace]["clientNamespaces"];
|
|
33
|
+
v2: boolean;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
export type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);
|
|
@@ -44,7 +46,8 @@ export type TDBIInteractionTypes =
|
|
|
44
46
|
| "ChannelSelectMenu"
|
|
45
47
|
| "MentionableSelectMenu"
|
|
46
48
|
| "RoleSelectMenu"
|
|
47
|
-
| "Button"
|
|
49
|
+
| "Button"
|
|
50
|
+
| "HTMLComponentsV2";
|
|
48
51
|
|
|
49
52
|
export type TDBIRateLimitTypes =
|
|
50
53
|
| "User"
|
|
@@ -89,9 +92,9 @@ export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
|
|
|
89
92
|
flag?: string;
|
|
90
93
|
ttl?: number;
|
|
91
94
|
at?: number;
|
|
92
|
-
toJSON(overrides
|
|
95
|
+
toJSON(overrides?: any): any { }
|
|
93
96
|
|
|
94
|
-
onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {
|
|
97
|
+
onExecute?(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {
|
|
95
98
|
|
|
96
99
|
}
|
|
97
100
|
}
|
package/src/utils/customId.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { DBI } from "../DBI";
|
|
|
2
2
|
import * as stuffs from "stuffs";
|
|
3
3
|
import { NamespaceEnums } from "../../generated/namespaceData";
|
|
4
4
|
|
|
5
|
-
export function buildCustomId(dbi: DBI<NamespaceEnums>, name: string, data: any[], ttl?: number): string {
|
|
5
|
+
export function buildCustomId(dbi: DBI<NamespaceEnums>, name: string, data: any[], ttl?: number, v2 = false): string {
|
|
6
6
|
let customId = [
|
|
7
|
-
name
|
|
7
|
+
`${v2 ? 'v2:' : ''}${name}`,
|
|
8
8
|
...data.map(value => {
|
|
9
9
|
if (typeof value == "string") return value;
|
|
10
10
|
if (typeof value == "number") return `π${value}`;
|
|
@@ -26,9 +26,11 @@ export function buildCustomId(dbi: DBI<NamespaceEnums>, name: string, data: any[
|
|
|
26
26
|
return customId;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function parseCustomId(dbi: DBI<NamespaceEnums>, customId: string): { name: string, data: any[] } {
|
|
29
|
+
export function parseCustomId(dbi: DBI<NamespaceEnums>, customId: string): { name: string, data: any[], v2: boolean } {
|
|
30
30
|
let splitted = customId.split("—");
|
|
31
31
|
let name = splitted.shift();
|
|
32
|
+
let v2 = name.startsWith("v2:");
|
|
33
|
+
if (v2) name = name.slice(3);
|
|
32
34
|
let data = splitted.map(value => {
|
|
33
35
|
if (value.startsWith("π")) return Number(value.slice(1));
|
|
34
36
|
if (value.startsWith("𝞫")) return !!Number(value.slice(1));
|
|
@@ -39,6 +41,7 @@ export function parseCustomId(dbi: DBI<NamespaceEnums>, customId: string): { nam
|
|
|
39
41
|
return value;
|
|
40
42
|
});
|
|
41
43
|
return {
|
|
44
|
+
v2,
|
|
42
45
|
name,
|
|
43
46
|
data
|
|
44
47
|
}
|
package/test.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { createDBI } from "./src";
|
|
2
|
+
|
|
3
|
+
const dbi = createDBI("test", {
|
|
4
|
+
strict: true,
|
|
5
|
+
discord: {
|
|
6
|
+
token: '',
|
|
7
|
+
options: {
|
|
8
|
+
intents: [
|
|
9
|
+
"Guilds",
|
|
10
|
+
"GuildMessages",
|
|
11
|
+
"GuildMembers",
|
|
12
|
+
"MessageContent",
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
dbi.register(({ HTMLComponentsV2, HTMLComponentsV2Handlers, Event }) => {
|
|
19
|
+
HTMLComponentsV2({
|
|
20
|
+
name: 'test-v2',
|
|
21
|
+
description: 'Test HTML Components V2',
|
|
22
|
+
template: `
|
|
23
|
+
<components>
|
|
24
|
+
<container>
|
|
25
|
+
<components>
|
|
26
|
+
<action-row>
|
|
27
|
+
<% it.tabs.forEach((tab => { %>
|
|
28
|
+
<button name="<%= tab.name %>" style="<%= tab.selected ? 'Primary' : 'Secondary' %>"><%= tab.label %></button>
|
|
29
|
+
<% })) %>
|
|
30
|
+
</action-row>
|
|
31
|
+
<text-display>
|
|
32
|
+
Seçili Sekme: <%= it.tabs.find(tab => tab.selected).label %>
|
|
33
|
+
</text-display>
|
|
34
|
+
</components>
|
|
35
|
+
</container>
|
|
36
|
+
</components>
|
|
37
|
+
`,
|
|
38
|
+
async onExecute({ interaction, data: [elementName, clicks] }) {
|
|
39
|
+
if (interaction.isButton()) {
|
|
40
|
+
console.log(`Button clicked: ${elementName}`);
|
|
41
|
+
await interaction.deferUpdate();
|
|
42
|
+
interaction.editReply({
|
|
43
|
+
components: dbi.interaction("test-v2").toJSON({
|
|
44
|
+
data: {
|
|
45
|
+
tabs: [
|
|
46
|
+
{ name: 'tab:1', label: 'Tab 1' },
|
|
47
|
+
{ name: 'tab:2', label: 'Tab 2' },
|
|
48
|
+
{ name: 'tab:3', label: 'Tab 3' },
|
|
49
|
+
{ name: 'tab:4', label: 'Tab 4' },
|
|
50
|
+
{ name: 'tab:5', label: 'Tab 5' },
|
|
51
|
+
].map(tab => ({
|
|
52
|
+
...tab,
|
|
53
|
+
selected: tab.name === elementName
|
|
54
|
+
}))
|
|
55
|
+
}
|
|
56
|
+
})
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
Event({
|
|
63
|
+
id: 'test-v2-event',
|
|
64
|
+
name: 'messageCreate',
|
|
65
|
+
onExecute: async ({ message }) => {
|
|
66
|
+
if (message.content === '!test') {
|
|
67
|
+
await message.reply({
|
|
68
|
+
components: dbi.interaction("test-v2").toJSON({
|
|
69
|
+
data: {
|
|
70
|
+
tabs: [
|
|
71
|
+
{ name: 'tab:1', label: 'Tab 1', selected: true },
|
|
72
|
+
{ name: 'tab:2', label: 'Tab 2' },
|
|
73
|
+
{ name: 'tab:3', label: 'Tab 3' },
|
|
74
|
+
{ name: 'tab:4', label: 'Tab 4' },
|
|
75
|
+
{ name: 'tab:5', label: 'Tab 5' },
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
}),
|
|
79
|
+
flags: ["IsComponentsV2"]
|
|
80
|
+
}).catch((err) => {
|
|
81
|
+
console.log(JSON.stringify(err, null, 2));
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
(async () => {
|
|
89
|
+
await dbi.load();
|
|
90
|
+
await dbi.login();
|
|
91
|
+
})();
|
package/dist/DBI.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DBI.d.ts","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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"}
|
package/dist/DBI.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord, { MessagePayload } from \"discord.js\";\r\nimport {\r\n DBIChatInput,\r\n TDBIChatInputOmitted,\r\n} from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport {\r\n DBILocale,\r\n TDBILocaleConstructor,\r\n TDBILocaleString,\r\n} from \"./types/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport {\r\n DBIStringSelectMenu,\r\n TDBIStringSelectMenuOmitted,\r\n} from \"./types/Components/StringSelectMenu\";\r\nimport {\r\n DBIMessageContextMenu,\r\n TDBIMessageContextMenuOmitted,\r\n} from \"./types/other/MessageContextMenu\";\r\nimport {\r\n DBIUserContextMenu,\r\n TDBIUserContextMenuOmitted,\r\n} from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport {\r\n DBIInteractionLocale,\r\n TDBIInteractionLocaleOmitted,\r\n} from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport {\r\n DBICustomEvent,\r\n TDBICustomEventOmitted,\r\n} from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport {\r\n DBIUserSelectMenu,\r\n TDBIUserSelectMenuOmitted,\r\n} from \"./types/Components/UserSelectMenu\";\r\nimport {\r\n DBIMentionableSelectMenu,\r\n TDBIMentionableSelectMenuOmitted,\r\n} from \"./types/Components/MentionableSelectMenu\";\r\nimport {\r\n DBIChannelSelectMenu,\r\n TDBIChannelSelectMenuOmitted,\r\n} from \"./types/Components/ChannelSelectMenu\";\r\nimport {\r\n DBIRoleSelectMenu,\r\n TDBIRoleSelectMenuOmitted,\r\n} from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type TDBIClientData<TNamespace extends NamespaceEnums> = {\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n token: string;\r\n options: Discord.ClientOptions;\r\n client: Discord.Client<true>;\r\n};\r\n\r\nexport type TDBIMessageCommandsActionCtx<TNamespace extends NamespaceEnums> = {\r\n interaction: FakeMessageInteraction;\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n}\r\n\r\nexport type TDBIMessageCommandsPrefixesCtx = {\r\n message: Discord.Message;\r\n};\r\n\r\nexport type TDBILocaleInvalidPathCtx<TNamespace extends NamespaceEnums> = {\r\n path: string;\r\n locale: DBILocale<TNamespace>;\r\n}\r\n\r\nexport interface DBIConfig<TNamespace extends NamespaceEnums> {\r\n discord: {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n defaults: {\r\n locale: {\r\n name: TDBILocaleString;\r\n invalidPath(ctx: TDBILocaleInvalidPathCtx<TNamespace>): string;\r\n };\r\n directMessages: boolean;\r\n defaultMemberPermissions: Discord.PermissionsString[];\r\n messageCommands: {\r\n deferReplyContent(ctx: TDBIMessageCommandsActionCtx<TNamespace>): MessagePayload | string | Promise<MessagePayload | string>;\r\n };\r\n };\r\n\r\n sharding: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store: DBIStore;\r\n\r\n references: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n }\r\n\r\n strict: boolean;\r\n messageCommands?: {\r\n prefixes(ctx: TDBIMessageCommandsPrefixesCtx): string[] | Promise<string[]>;\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIConfigConstructor<TNamespace extends NamespaceEnums, OtherData extends Record<string, any>> {\r\n discord:\r\n | {\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }\r\n | {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n\r\n defaults?: {\r\n locale?: {\r\n name?: TDBILocaleString;\r\n invalidPath?: string | ((ctx: TDBILocaleInvalidPathCtx<TNamespace>) => string);\r\n };\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n messageCommands?: {\r\n deferReplyContent?: MessagePayload | string | ((ctx: TDBIMessageCommandsActionCtx<TNamespace>) => MessagePayload | string | Promise<MessagePayload | string>);\r\n };\r\n };\r\n\r\n sharding?: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store?: DBIStore;\r\n\r\n references?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n data?: {\r\n other?: OtherData;\r\n refs?: Map<string, { at: number; value: any; ttl?: number }>;\r\n };\r\n\r\n strict?: boolean;\r\n\r\n messageCommands?: {\r\n prefixes: string[] | ((ctx: TDBIMessageCommandsPrefixesCtx) => string[] | Promise<string[]>);\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n MessageContextMenu(\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(\r\n cfg: TDBICustomEventOmitted<TNamespace, T>\r\n ): DBICustomEvent<TNamespace, T>;\r\n\r\n createInlineEvent(cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">): DBIEvent<TNamespace>;\r\n createInlineButton(cfg: Omit<TDBIButtonOmitted<TNamespace>, \"id\" | \"name\">): DBIButton<TNamespace>;\r\n createInlineStringSelectMenu(\r\n cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIStringSelectMenu<TNamespace>;\r\n createInlineUserSelectMenu(\r\n cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIUserSelectMenu<TNamespace>;\r\n createInlineRoleSelectMenu(\r\n cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n createInlineChannelSelectMenu(\r\n cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n createInlineMentionableSelectMenu(\r\n cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n createInlineModal(cfg: Omit<TDBIModalOmitted<TNamespace>, \"id\" | \"name\">): DBIModal<TNamespace>;\r\n\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<\r\n TNamespace extends NamespaceEnums,\r\n TOtherData extends Record<string, any> = Record<string, any>\r\n> {\r\n namespace: TNamespace;\r\n config: DBIConfig<TNamespace>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number; value: any; ttl?: number }>;\r\n clients: TDBIClientData<TNamespace>[] & {\r\n next(key?: string): TDBIClientData<TNamespace>;\r\n random(): TDBIClientData<TNamespace>;\r\n random(size: number): TDBIClientData<TNamespace>[];\r\n first(): TDBIClientData<TNamespace>;\r\n get(\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"]\r\n ): TDBIClientData<TNamespace>;\r\n indexes: Record<string, number>;\r\n };\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor<TNamespace, TOtherData>) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = (config.store as any) || new MemoryStore();\r\n config.defaults = {\r\n locale: (() => {\r\n const invalidPath = config.defaults?.locale?.invalidPath;\r\n return {\r\n ...(config.defaults?.locale || {}),\r\n invalidPath: (typeof invalidPath === \"function\" ? invalidPath : (ctx: TDBILocaleInvalidPathCtx<TNamespace>) => (invalidPath || `Invalid locale path \"${ctx.path}\".`)) as any\r\n }\r\n })(),\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {}),\r\n messageCommands: (() => {\r\n const deferReplyContent = config.defaults?.messageCommands?.deferReplyContent\r\n return {\r\n ...(config.defaults?.messageCommands || {}),\r\n deferReplyContent: (typeof deferReplyContent === \"function\" ? deferReplyContent : () => (deferReplyContent || \"Loading...\")) as any\r\n }\r\n })(),\r\n };\r\n\r\n config.sharding = config.sharding ?? \"off\";\r\n config.strict = config.strict ?? true;\r\n config.references = {\r\n autoClear: undefined,\r\n ...(config.references || {}),\r\n };\r\n config.inlineListeners = {\r\n autoClear: {\r\n check: 60000,\r\n ttl: 900000,\r\n },\r\n ...(config.inlineListeners || {}),\r\n };\r\n\r\n if (config.messageCommands) {\r\n const { prefixes, typeAliases } = config.messageCommands;\r\n\r\n if (Array.isArray(prefixes) && config.strict && !prefixes.length)\r\n throw new Error(\"No prefixes provided.\");\r\n\r\n const prefixesFn = typeof prefixes === \"function\" ? prefixes : () => prefixes;\r\n\r\n config.messageCommands.prefixes = prefixesFn;\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n true: true,\r\n false: false,\r\n yes: true,\r\n no: false,\r\n y: true,\r\n n: false,\r\n \"1\": true,\r\n \"0\": false,\r\n },\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = ((this.indexes[key] ?? -1) + 1) % this.length;\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {},\r\n }) as any,\r\n };\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord)\r\n ? config.discord\r\n : [\r\n {\r\n token: config.discord.token,\r\n options: config.discord.options,\r\n namespace: \"default\",\r\n },\r\n ];\r\n\r\n this.data.clients.push(...(config.discord as any));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...((clientContext.options || {}) as any),\r\n ...(config.sharding == \"hybrid\"\r\n ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS,\r\n }\r\n : {}),\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (\r\n this.data.clients.length !== 1 &&\r\n !(config.sharding && config.sharding === \"off\")\r\n )\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster =\r\n config.sharding == \"hybrid\"\r\n ? new Sharding.ClusterClient(this.data.clients[0].client)\r\n : undefined;\r\n this._loaded = false;\r\n this._hooked = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n if (this._hooked) return;\r\n const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at, ttl }, key) => {\r\n if (\r\n Date.now() >\r\n at + (ttl || this.config.references.autoClear.ttl)\r\n ) {\r\n this.data.refs.delete(key);\r\n }\r\n });\r\n }, this.config.references.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.inlineListeners.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.interactions.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.interactions.delete(key);\r\n }\r\n });\r\n this.data.events.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.events.delete(key);\r\n }\r\n });\r\n }, this.config.inlineListeners.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n };\r\n })()\r\n );\r\n }\r\n }\r\n\r\n private async _unhookListeners() {\r\n if (!this._hooked) return;\r\n this._hooked = false;\r\n this.data.unloaders.forEach((f) => {\r\n f();\r\n });\r\n this.data.unloaders.clear();\r\n }\r\n\r\n private async _unregisterAll() {\r\n for await (const cb of this.data.registerUnloaders) {\r\n await cb();\r\n }\r\n this.data.events.clear();\r\n this.data.interactions.clear();\r\n this.data.interactionLocales.clear();\r\n this.data.locales.clear();\r\n this.data.registerUnloaders.clear();\r\n this.data.refs.clear();\r\n\r\n this.data.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll(flags: string[] = []) {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n const randomInlineId = () => `inline:${Math.random().toString(36).slice(2)}`;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name))\r\n throw new Error(\r\n `DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(\r\n ChatInput,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChatInput.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Event = function (cfg: TDBIEventOmitted<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.events.has(dbiEvent.id || dbiEvent.name)\r\n )\r\n throw new Error(\r\n `DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(\r\n Event,\r\n class {\r\n constructor(...args: any[]) {\r\n return Event.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineEvent = function (cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">) {\r\n return Event({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id: randomInlineId() } as any);\r\n }\r\n\r\n let Button = function (cfg: TDBIButtonOmitted<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiButton.name))\r\n throw new Error(\r\n `DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiButton.name, dbiButton as any);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(\r\n Button,\r\n class {\r\n constructor(...args: any[]) {\r\n return Button.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineButton = function (cfg: Omit<TDBIButtonOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Button({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let StringSelectMenu = function (\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiStringSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIStringSelectMenu \"${dbiStringSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiStringSelectMenu.name,\r\n dbiStringSelectMenu as any\r\n );\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(\r\n StringSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return StringSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineStringSelectMenu = function (cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return StringSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let UserSelectMenu = function (\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserSelectMenu.name,\r\n dbiUserSelectMenu as any\r\n );\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(\r\n UserSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineUserSelectMenu = function (cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return UserSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let RoleSelectMenu = function (\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiRoleSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiRoleSelectMenu.name,\r\n dbiRoleSelectMenu as any\r\n );\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(\r\n RoleSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return RoleSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineRoleSelectMenu = function (cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return RoleSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let ChannelSelectMenu = function (\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiChannelSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIChannelSelectMenu \"${dbiChannelSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiChannelSelectMenu.name,\r\n dbiChannelSelectMenu as any\r\n );\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(\r\n ChannelSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChannelSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineChannelSelectMenu = function (cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return ChannelSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MentionableSelectMenu = function (\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(\r\n self as any,\r\n cfg\r\n );\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMentionableSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMentionableSelectMenu.name,\r\n dbiMentionableSelectMenu as any\r\n );\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(\r\n MentionableSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MentionableSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineMentionableSelectMenu = function (cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return MentionableSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MessageContextMenu = function (\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMessageContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMessageContextMenu \"${dbiMessageContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMessageContextMenu.name,\r\n dbiMessageContextMenu as any\r\n );\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(\r\n MessageContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MessageContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let UserContextMenu = function (\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserContextMenu \"${dbiUserContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserContextMenu.name,\r\n dbiUserContextMenu as any\r\n );\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(\r\n UserContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Modal = function (cfg: TDBIModalOmitted<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiModal.name))\r\n throw new Error(\r\n `DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiModal.name, dbiModal as any);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(\r\n Modal,\r\n class {\r\n constructor(...args: any[]) {\r\n return Modal.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineModal = function (cfg: Omit<TDBIModalOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Modal({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let Locale = function (cfg: TDBILocaleConstructor<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiLocale.name)\r\n )\r\n throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name))\r\n dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(\r\n Locale,\r\n class {\r\n constructor(...args: any[]) {\r\n return Locale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name])\r\n throw new Error(\r\n `DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`\r\n );\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(\r\n CustomEvent,\r\n class {\r\n constructor(...args: any[]) {\r\n return CustomEvent.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let InteractionLocale = function (cfg: TDBIInteractionLocaleOmitted) {\r\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiInteractionLocale.name)\r\n )\r\n throw new Error(\r\n `DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactionLocales.set(\r\n dbiInteractionLocale.name,\r\n dbiInteractionLocale\r\n );\r\n return dbiInteractionLocale;\r\n };\r\n InteractionLocale = Object.assign(\r\n InteractionLocale,\r\n class {\r\n constructor(...args: any[]) {\r\n return InteractionLocale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions,\r\n Locale,\r\n Button,\r\n StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n createInlineButton,\r\n createInlineEvent,\r\n createInlineStringSelectMenu,\r\n createInlineUserSelectMenu,\r\n createInlineRoleSelectMenu,\r\n createInlineChannelSelectMenu,\r\n createInlineMentionableSelectMenu,\r\n createInlineModal,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\r\n }\r\n\r\n emit<\r\n TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] &\r\n ClientEvents)\r\n >(\r\n name: TEventName,\r\n args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]\r\n ): void {\r\n this.data.clients.forEach((d) =>\r\n d.client.emit(name as any, { ...args, _DIRECT_: true } as any)\r\n );\r\n }\r\n\r\n /**\r\n * this.data.interactions.get(name)\r\n */\r\n interaction<\r\n TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]\r\n >(\r\n name: TInteractionName\r\n ): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(\r\n name?: TClientName\r\n ): TDBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(\r\n name: TEventName\r\n ): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(\r\n name: TLocaleName\r\n ): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(\r\n k: K,\r\n defaultValue?: TOtherData[K]\r\n ): TOtherData[K] {\r\n if (defaultValue && !this.has(k as any)) {\r\n this.set(k, defaultValue);\r\n return defaultValue;\r\n }\r\n return _.get(this.data.other, k);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any {\r\n this.data.other = _.set(this.data.other as any, k, v);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n has(k: string): boolean {\r\n return _.has(this.data.other, k as any);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n delete(k: string): boolean {\r\n return _.unset(this.data.other, k);\r\n }\r\n\r\n async login(): Promise<any> {\r\n await aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(\r\n this.config.sharding == \"default\" ? null : clientContext.token\r\n );\r\n });\r\n this.events.trigger(\"clientsReady\", undefined, true);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI<TNamespace>) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(...flags: string[]): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll(flags);\r\n await this._hookListeners();\r\n this._loaded = true;\r\n return true;\r\n }\r\n\r\n async unload(): Promise<boolean> {\r\n if (!this._loaded) return false;\r\n await this._unregisterAll();\r\n await this._unhookListeners();\r\n this._loaded = false;\r\n return true;\r\n }\r\n\r\n get loaded(): boolean {\r\n return this._loaded;\r\n }\r\n\r\n async publish(type: \"Global\", clear?: boolean): Promise<any>;\r\n async publish(type: \"Guild\", guildId: string, clear?: boolean): Promise<any>;\r\n\r\n async publish(...args: any[]) {\r\n let interactions = this.data.interactions.filter(\r\n (i) =>\r\n i.type == \"ChatInput\" ||\r\n i.type == \"MessageContextMenu\" ||\r\n i.type == \"UserContextMenu\"\r\n ) as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n}\r\n"]}
|
package/dist/Events.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
|