@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.
Files changed (261) hide show
  1. package/dist/{DBI.d.ts → src/DBI.d.ts} +4 -0
  2. package/dist/src/DBI.d.ts.map +1 -0
  3. package/dist/{DBI.js → src/DBI.js} +15 -71
  4. package/dist/src/DBI.js.map +1 -0
  5. package/dist/src/Events.d.ts.map +1 -0
  6. package/dist/src/Events.js.map +1 -0
  7. package/dist/src/index.d.ts.map +1 -0
  8. package/dist/src/index.js.map +1 -0
  9. package/dist/src/methods/handleMessageCommands.d.ts.map +1 -0
  10. package/dist/src/methods/handleMessageCommands.js.map +1 -0
  11. package/dist/src/methods/hookEventListeners.d.ts.map +1 -0
  12. package/dist/src/methods/hookEventListeners.js.map +1 -0
  13. package/dist/src/methods/hookInteractionListeners.d.ts.map +1 -0
  14. package/dist/{methods → src/methods}/hookInteractionListeners.js +62 -20
  15. package/dist/src/methods/hookInteractionListeners.js.map +1 -0
  16. package/dist/src/methods/publishInteractions.d.ts.map +1 -0
  17. package/dist/src/methods/publishInteractions.js.map +1 -0
  18. package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
  19. package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +1 -0
  20. package/dist/src/types/Builders/ButtonBuilder.d.ts.map +1 -0
  21. package/dist/src/types/Builders/ButtonBuilder.js.map +1 -0
  22. package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
  23. package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
  24. package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
  25. package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
  26. package/dist/src/types/Builders/ModalBuilder.d.ts.map +1 -0
  27. package/dist/src/types/Builders/ModalBuilder.js.map +1 -0
  28. package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
  29. package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
  30. package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
  31. package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +1 -0
  32. package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
  33. package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +1 -0
  34. package/dist/src/types/ChatInput/ChatInput.d.ts.map +1 -0
  35. package/dist/src/types/ChatInput/ChatInput.js.map +1 -0
  36. package/dist/{types → src/types}/ChatInput/ChatInputOptions.d.ts +1 -1
  37. package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
  38. package/dist/src/types/ChatInput/ChatInputOptions.js.map +1 -0
  39. package/dist/src/types/Components/Button.d.ts.map +1 -0
  40. package/dist/src/types/Components/Button.js.map +1 -0
  41. package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +1 -0
  42. package/dist/src/types/Components/ChannelSelectMenu.js.map +1 -0
  43. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts +53 -0
  44. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +1 -0
  45. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js +60 -0
  46. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +1 -0
  47. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts +19 -0
  48. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts.map +1 -0
  49. package/dist/src/types/Components/HTMLComponentsV2/index.js +28 -0
  50. package/dist/src/types/Components/HTMLComponentsV2/index.js.map +1 -0
  51. package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts +4 -0
  52. package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts.map +1 -0
  53. package/dist/src/types/Components/HTMLComponentsV2/parser.js +260 -0
  54. package/dist/src/types/Components/HTMLComponentsV2/parser.js.map +1 -0
  55. package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +1 -0
  56. package/dist/src/types/Components/MentionableSelectMenu.js.map +1 -0
  57. package/dist/src/types/Components/Modal.d.ts.map +1 -0
  58. package/dist/src/types/Components/Modal.js.map +1 -0
  59. package/dist/src/types/Components/RoleSelectMenu.d.ts.map +1 -0
  60. package/dist/src/types/Components/RoleSelectMenu.js.map +1 -0
  61. package/dist/src/types/Components/StringSelectMenu.d.ts.map +1 -0
  62. package/dist/src/types/Components/StringSelectMenu.js.map +1 -0
  63. package/dist/src/types/Components/UserSelectMenu.d.ts.map +1 -0
  64. package/dist/src/types/Components/UserSelectMenu.js.map +1 -0
  65. package/dist/src/types/Event.d.ts.map +1 -0
  66. package/dist/src/types/Event.js.map +1 -0
  67. package/dist/{types → src/types}/Interaction.d.ts +6 -4
  68. package/dist/src/types/Interaction.d.ts.map +1 -0
  69. package/dist/src/types/Interaction.js.map +1 -0
  70. package/dist/src/types/other/CustomEvent.d.ts.map +1 -0
  71. package/dist/src/types/other/CustomEvent.js.map +1 -0
  72. package/dist/src/types/other/FakeMessageInteraction.d.ts.map +1 -0
  73. package/dist/src/types/other/FakeMessageInteraction.js.map +1 -0
  74. package/dist/src/types/other/InteractionLocale.d.ts.map +1 -0
  75. package/dist/src/types/other/InteractionLocale.js.map +1 -0
  76. package/dist/src/types/other/Locale.d.ts.map +1 -0
  77. package/dist/src/types/other/Locale.js.map +1 -0
  78. package/dist/src/types/other/MessageContextMenu.d.ts.map +1 -0
  79. package/dist/src/types/other/MessageContextMenu.js.map +1 -0
  80. package/dist/src/types/other/UserContextMenu.d.ts.map +1 -0
  81. package/dist/src/types/other/UserContextMenu.js.map +1 -0
  82. package/dist/src/utils/MemoryStore.d.ts.map +1 -0
  83. package/dist/src/utils/MemoryStore.js.map +1 -0
  84. package/dist/src/utils/UtilTypes.d.ts.map +1 -0
  85. package/dist/src/utils/UtilTypes.js.map +1 -0
  86. package/dist/{utils → src/utils}/customId.d.ts +2 -1
  87. package/dist/src/utils/customId.d.ts.map +1 -0
  88. package/dist/{utils → src/utils}/customId.js +6 -2
  89. package/dist/src/utils/customId.js.map +1 -0
  90. package/dist/src/utils/permissions.d.ts.map +1 -0
  91. package/dist/src/utils/permissions.js.map +1 -0
  92. package/dist/src/utils/recursiveImport.d.ts.map +1 -0
  93. package/dist/src/utils/recursiveImport.js.map +1 -0
  94. package/dist/src/utils/recursiveUnload.d.ts.map +1 -0
  95. package/dist/src/utils/recursiveUnload.js.map +1 -0
  96. package/dist/src/utils/unloadModule.d.ts.map +1 -0
  97. package/dist/src/utils/unloadModule.js.map +1 -0
  98. package/dist/test.d.ts +2 -0
  99. package/dist/test.d.ts.map +1 -0
  100. package/dist/test.js +90 -0
  101. package/dist/test.js.map +1 -0
  102. package/package.json +7 -4
  103. package/src/DBI.ts +30 -113
  104. package/src/methods/hookInteractionListeners.ts +79 -34
  105. package/src/types/ChatInput/ChatInputOptions.ts +6 -6
  106. package/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.ts +78 -0
  107. package/src/types/Components/HTMLComponentsV2/index.ts +43 -0
  108. package/src/types/Components/HTMLComponentsV2/parser.ts +279 -0
  109. package/src/types/Interaction.ts +7 -4
  110. package/src/utils/customId.ts +6 -3
  111. package/test.ts +91 -0
  112. package/dist/DBI.d.ts.map +0 -1
  113. package/dist/DBI.js.map +0 -1
  114. package/dist/Events.d.ts.map +0 -1
  115. package/dist/Events.js.map +0 -1
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/index.js.map +0 -1
  118. package/dist/methods/handleMessageCommands.d.ts.map +0 -1
  119. package/dist/methods/handleMessageCommands.js.map +0 -1
  120. package/dist/methods/hookEventListeners.d.ts.map +0 -1
  121. package/dist/methods/hookEventListeners.js.map +0 -1
  122. package/dist/methods/hookInteractionListeners.d.ts.map +0 -1
  123. package/dist/methods/hookInteractionListeners.js.map +0 -1
  124. package/dist/methods/publishInteractions.d.ts.map +0 -1
  125. package/dist/methods/publishInteractions.js.map +0 -1
  126. package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
  127. package/dist/types/ApplicationRoleConnectionMetadata.js.map +0 -1
  128. package/dist/types/Builders/ButtonBuilder.d.ts.map +0 -1
  129. package/dist/types/Builders/ButtonBuilder.js.map +0 -1
  130. package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
  131. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
  132. package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
  133. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
  134. package/dist/types/Builders/ModalBuilder.d.ts.map +0 -1
  135. package/dist/types/Builders/ModalBuilder.js.map +0 -1
  136. package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
  137. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
  138. package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
  139. package/dist/types/Builders/StringSelectMenuBuilder.js.map +0 -1
  140. package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
  141. package/dist/types/Builders/UserSelectMenuBuilder.js.map +0 -1
  142. package/dist/types/ChatInput/ChatInput.d.ts.map +0 -1
  143. package/dist/types/ChatInput/ChatInput.js.map +0 -1
  144. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
  145. package/dist/types/ChatInput/ChatInputOptions.js.map +0 -1
  146. package/dist/types/Components/Button.d.ts.map +0 -1
  147. package/dist/types/Components/Button.js.map +0 -1
  148. package/dist/types/Components/ChannelSelectMenu.d.ts.map +0 -1
  149. package/dist/types/Components/ChannelSelectMenu.js.map +0 -1
  150. package/dist/types/Components/MentionableSelectMenu.d.ts.map +0 -1
  151. package/dist/types/Components/MentionableSelectMenu.js.map +0 -1
  152. package/dist/types/Components/Modal.d.ts.map +0 -1
  153. package/dist/types/Components/Modal.js.map +0 -1
  154. package/dist/types/Components/RoleSelectMenu.d.ts.map +0 -1
  155. package/dist/types/Components/RoleSelectMenu.js.map +0 -1
  156. package/dist/types/Components/StringSelectMenu.d.ts.map +0 -1
  157. package/dist/types/Components/StringSelectMenu.js.map +0 -1
  158. package/dist/types/Components/UserSelectMenu.d.ts.map +0 -1
  159. package/dist/types/Components/UserSelectMenu.js.map +0 -1
  160. package/dist/types/Event.d.ts.map +0 -1
  161. package/dist/types/Event.js.map +0 -1
  162. package/dist/types/Interaction.d.ts.map +0 -1
  163. package/dist/types/Interaction.js.map +0 -1
  164. package/dist/types/other/CustomEvent.d.ts.map +0 -1
  165. package/dist/types/other/CustomEvent.js.map +0 -1
  166. package/dist/types/other/FakeMessageInteraction.d.ts.map +0 -1
  167. package/dist/types/other/FakeMessageInteraction.js.map +0 -1
  168. package/dist/types/other/InteractionLocale.d.ts.map +0 -1
  169. package/dist/types/other/InteractionLocale.js.map +0 -1
  170. package/dist/types/other/Locale.d.ts.map +0 -1
  171. package/dist/types/other/Locale.js.map +0 -1
  172. package/dist/types/other/MessageContextMenu.d.ts.map +0 -1
  173. package/dist/types/other/MessageContextMenu.js.map +0 -1
  174. package/dist/types/other/UserContextMenu.d.ts.map +0 -1
  175. package/dist/types/other/UserContextMenu.js.map +0 -1
  176. package/dist/utils/MemoryStore.d.ts.map +0 -1
  177. package/dist/utils/MemoryStore.js.map +0 -1
  178. package/dist/utils/UtilTypes.d.ts.map +0 -1
  179. package/dist/utils/UtilTypes.js.map +0 -1
  180. package/dist/utils/customId.d.ts.map +0 -1
  181. package/dist/utils/customId.js.map +0 -1
  182. package/dist/utils/permissions.d.ts.map +0 -1
  183. package/dist/utils/permissions.js.map +0 -1
  184. package/dist/utils/recursiveImport.d.ts.map +0 -1
  185. package/dist/utils/recursiveImport.js.map +0 -1
  186. package/dist/utils/recursiveUnload.d.ts.map +0 -1
  187. package/dist/utils/recursiveUnload.js.map +0 -1
  188. package/dist/utils/unloadModule.d.ts.map +0 -1
  189. package/dist/utils/unloadModule.js.map +0 -1
  190. /package/dist/{Events.d.ts → src/Events.d.ts} +0 -0
  191. /package/dist/{Events.js → src/Events.js} +0 -0
  192. /package/dist/{data → src/data}/eventMap.json +0 -0
  193. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  194. /package/dist/{index.js → src/index.js} +0 -0
  195. /package/dist/{methods → src/methods}/handleMessageCommands.d.ts +0 -0
  196. /package/dist/{methods → src/methods}/handleMessageCommands.js +0 -0
  197. /package/dist/{methods → src/methods}/hookEventListeners.d.ts +0 -0
  198. /package/dist/{methods → src/methods}/hookEventListeners.js +0 -0
  199. /package/dist/{methods → src/methods}/hookInteractionListeners.d.ts +0 -0
  200. /package/dist/{methods → src/methods}/publishInteractions.d.ts +0 -0
  201. /package/dist/{methods → src/methods}/publishInteractions.js +0 -0
  202. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
  203. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.js +0 -0
  204. /package/dist/{types → src/types}/Builders/ButtonBuilder.d.ts +0 -0
  205. /package/dist/{types → src/types}/Builders/ButtonBuilder.js +0 -0
  206. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
  207. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.js +0 -0
  208. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
  209. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.js +0 -0
  210. /package/dist/{types → src/types}/Builders/ModalBuilder.d.ts +0 -0
  211. /package/dist/{types → src/types}/Builders/ModalBuilder.js +0 -0
  212. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
  213. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.js +0 -0
  214. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
  215. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.js +0 -0
  216. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
  217. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.js +0 -0
  218. /package/dist/{types → src/types}/ChatInput/ChatInput.d.ts +0 -0
  219. /package/dist/{types → src/types}/ChatInput/ChatInput.js +0 -0
  220. /package/dist/{types → src/types}/ChatInput/ChatInputOptions.js +0 -0
  221. /package/dist/{types → src/types}/Components/Button.d.ts +0 -0
  222. /package/dist/{types → src/types}/Components/Button.js +0 -0
  223. /package/dist/{types → src/types}/Components/ChannelSelectMenu.d.ts +0 -0
  224. /package/dist/{types → src/types}/Components/ChannelSelectMenu.js +0 -0
  225. /package/dist/{types → src/types}/Components/MentionableSelectMenu.d.ts +0 -0
  226. /package/dist/{types → src/types}/Components/MentionableSelectMenu.js +0 -0
  227. /package/dist/{types → src/types}/Components/Modal.d.ts +0 -0
  228. /package/dist/{types → src/types}/Components/Modal.js +0 -0
  229. /package/dist/{types → src/types}/Components/RoleSelectMenu.d.ts +0 -0
  230. /package/dist/{types → src/types}/Components/RoleSelectMenu.js +0 -0
  231. /package/dist/{types → src/types}/Components/StringSelectMenu.d.ts +0 -0
  232. /package/dist/{types → src/types}/Components/StringSelectMenu.js +0 -0
  233. /package/dist/{types → src/types}/Components/UserSelectMenu.d.ts +0 -0
  234. /package/dist/{types → src/types}/Components/UserSelectMenu.js +0 -0
  235. /package/dist/{types → src/types}/Event.d.ts +0 -0
  236. /package/dist/{types → src/types}/Event.js +0 -0
  237. /package/dist/{types → src/types}/Interaction.js +0 -0
  238. /package/dist/{types → src/types}/other/CustomEvent.d.ts +0 -0
  239. /package/dist/{types → src/types}/other/CustomEvent.js +0 -0
  240. /package/dist/{types → src/types}/other/FakeMessageInteraction.d.ts +0 -0
  241. /package/dist/{types → src/types}/other/FakeMessageInteraction.js +0 -0
  242. /package/dist/{types → src/types}/other/InteractionLocale.d.ts +0 -0
  243. /package/dist/{types → src/types}/other/InteractionLocale.js +0 -0
  244. /package/dist/{types → src/types}/other/Locale.d.ts +0 -0
  245. /package/dist/{types → src/types}/other/Locale.js +0 -0
  246. /package/dist/{types → src/types}/other/MessageContextMenu.d.ts +0 -0
  247. /package/dist/{types → src/types}/other/MessageContextMenu.js +0 -0
  248. /package/dist/{types → src/types}/other/UserContextMenu.d.ts +0 -0
  249. /package/dist/{types → src/types}/other/UserContextMenu.js +0 -0
  250. /package/dist/{utils → src/utils}/MemoryStore.d.ts +0 -0
  251. /package/dist/{utils → src/utils}/MemoryStore.js +0 -0
  252. /package/dist/{utils → src/utils}/UtilTypes.d.ts +0 -0
  253. /package/dist/{utils → src/utils}/UtilTypes.js +0 -0
  254. /package/dist/{utils → src/utils}/permissions.d.ts +0 -0
  255. /package/dist/{utils → src/utils}/permissions.js +0 -0
  256. /package/dist/{utils → src/utils}/recursiveImport.d.ts +0 -0
  257. /package/dist/{utils → src/utils}/recursiveImport.js +0 -0
  258. /package/dist/{utils → src/utils}/recursiveUnload.d.ts +0 -0
  259. /package/dist/{utils → src/utils}/recursiveUnload.js +0 -0
  260. /package/dist/{utils → src/utils}/unloadModule.d.ts +0 -0
  261. /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
+ }
@@ -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: any): any { }
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
  }
@@ -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":"AAAA,OAAO,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGzE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,qBAAqB,EACrB,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EACL,cAAc,EACd,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,CAAC,UAAU,SAAS,cAAc,IAAI;IAC9D,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;IAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,UAAU,SAAS,cAAc,IAAI;IAC5E,WAAW,EAAE,sBAAsB,CAAC;IACpC,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;KAAE,CAAC;CACxE,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,UAAU,SAAS,cAAc,IAAI;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAA;AAED,MAAM,WAAW,SAAS,CAAC,UAAU,SAAS,cAAc;IAC1D,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;KAChC,EAAE,CAAC;IACJ,QAAQ,EAAE;QACR,MAAM,EAAE;YACN,IAAI,EAAE,gBAAgB,CAAC;YACvB,WAAW,CAAC,GAAG,EAAE,wBAAwB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;SAChE,CAAC;QACF,cAAc,EAAE,OAAO,CAAC;QACxB,wBAAwB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACtD,eAAe,EAAE;YACf,iBAAiB,CAAC,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;SAC9H,CAAC;KACH,CAAC;IAEF,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACvC;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC;IAEhB,UAAU,EAAE;QACV,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IAEF,eAAe,EAAE;QACf,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAA;IAED,MAAM,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE;QAChB,QAAQ,CAAC,GAAG,EAAE,8BAA8B,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5E,WAAW,EAAE;YACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACnC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB,CAAC,UAAU,SAAS,cAAc,EAAE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5G,OAAO,EACL;QACA,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;KAChC,GACC;QACA,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC;KAChC,EAAE,CAAC;IAEJ,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,EAAE,gBAAgB,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,wBAAwB,CAAC,UAAU,CAAC,KAAK,MAAM,CAAC,CAAC;SAChF,CAAC;QACF,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;QACvD,eAAe,CAAC,EAAE;YAChB,iBAAiB,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC,KAAK,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC;SAC/J,CAAC;KACH,CAAC;IAEF,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC;IACxC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IAEF,eAAe,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE;YACV,KAAK,EAAE,MAAM,CAAC;YACd,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;KACH,CAAC;IAEF,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,SAAS,CAAC;QAClB,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9D,CAAC;IAEF,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,8BAA8B,KAAK,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7F,WAAW,CAAC,EAAE;YACZ;;eAEG;YACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,cAAc,CAAC,UAAU,SAAS,cAAc;IAC/D,SAAS,CAAC,GAAG,EAAE,oBAAoB,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IAC3E,gBAAgB,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAClD,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IAClE,gBAAgB,CACd,GAAG,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAC3C,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACnC,cAAc,CACZ,GAAG,EAAE,yBAAyB,CAAC,UAAU,CAAC,GACzC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjC,cAAc,CACZ,GAAG,EAAE,yBAAyB,CAAC,UAAU,CAAC,GACzC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjC,iBAAiB,CACf,GAAG,EAAE,4BAA4B,CAAC,UAAU,CAAC,GAC5C,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpC,qBAAqB,CACnB,GAAG,EAAE,gCAAgC,CAAC,UAAU,CAAC,GAChD,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACxC,kBAAkB,CAChB,GAAG,EAAE,6BAA6B,CAAC,UAAU,CAAC,GAC7C,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACrC,eAAe,CACb,GAAG,EAAE,0BAA0B,CAAC,UAAU,CAAC,GAC1C,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAClC,iBAAiB,CAAC,GAAG,EAAE,4BAA4B,GAAG,oBAAoB,CAAC;IAC3E,KAAK,CAAC,GAAG,EAAE,gBAAgB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/D,WAAW,CAAC,CAAC,SAAS,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,EACnE,GAAG,EAAE,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC,GACzC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAEjC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvF,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;IACnG,4BAA4B,CAC1B,GAAG,EAAE,IAAI,CAAC,2BAA2B,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAChE,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACnC,0BAA0B,CACxB,GAAG,EAAE,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAC9D,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjC,0BAA0B,CACxB,GAAG,EAAE,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAC9D,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACjC,6BAA6B,CAC3B,GAAG,EAAE,IAAI,CAAC,4BAA4B,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GACjE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IACpC,iCAAiC,CAC/B,GAAG,EAAE,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GACrE,wBAAwB,CAAC,UAAU,CAAC,CAAC;IACxC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEhG,QAAQ,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;CAC7C;AAED,qBAAa,GAAG,CACd,UAAU,SAAS,cAAc,EACjC,UAAU,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAE5D,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9B,IAAI,EAAE;QACJ,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;QACvE,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3D,kBAAkB,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACrE,KAAK,EAAE,UAAU,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;YAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7D,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QAC3B,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;QACxC,iBAAiB,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;QAChD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5D,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC,EAAE,GAAG;YACtC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YACnD,KAAK,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;YACpC,GAAG,CACD,SAAS,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,GACvD,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACjC,CAAC;KACH,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;gBACb,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,UAAU,EAAE,UAAU,CAAC;YA4IzE,cAAc;YAwEd,gBAAgB;YAShB,cAAc;YAiBd,YAAY;IAia1B,IAAI,CACF,UAAU,SAAS,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,GACjE,YAAY,CAAC,EAEf,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC,CAAC,UAAU,CAAC,GAC3E,IAAI;IAMP;;OAEG;IACH,WAAW,CACT,gBAAgB,SAAS,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,EAE9E,IAAI,EAAE,gBAAgB,GACrB,aAAa,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,CAAC,gBAAgB,CAAC;IAIpE,MAAM,CAAC,WAAW,SAAS,aAAa,CAAC,UAAU,CAAC,CAAC,kBAAkB,CAAC,EACtE,IAAI,CAAC,EAAE,WAAW,GACjB,cAAc,CAAC,UAAU,CAAC;IAG7B;;OAEG;IACH,KAAK,CAAC,UAAU,SAAS,aAAa,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAC9D,IAAI,EAAE,UAAU,GACf,QAAQ,CAAC,UAAU,CAAC;IAIvB;;OAEG;IACH,MAAM,CAAC,WAAW,SAAS,aAAa,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,EACjE,IAAI,EAAE,WAAW,GAChB,SAAS,CAAC,UAAU,CAAC;IAIxB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAC5B,CAAC,EAAE,CAAC,EACJ,YAAY,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAC3B,UAAU,CAAC,CAAC,CAAC;IAQhB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG;IAI5D;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAIpB,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC;IASrB,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrE,IAAI,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ1C,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAEK,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IACtD,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CA6B7E"}
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"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}