@mostfeatured/dbi 0.0.10 → 0.0.11
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 +25 -3
- package/dist/DBI.d.ts.map +1 -1
- package/dist/DBI.js +44 -2
- package/dist/DBI.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/methods/hookInteractionListeners.js +1 -1
- package/dist/methods/hookInteractionListeners.js.map +1 -1
- package/dist/methods/publishInteractions.d.ts +4 -1
- package/dist/methods/publishInteractions.d.ts.map +1 -1
- package/dist/methods/publishInteractions.js +83 -10
- package/dist/methods/publishInteractions.js.map +1 -1
- package/dist/test.d.ts +2 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +46 -0
- package/dist/test.js.map +1 -0
- package/dist/types/InteractionLocale.d.ts +22 -0
- package/dist/types/InteractionLocale.d.ts.map +1 -0
- package/dist/types/InteractionLocale.js +15 -0
- package/dist/types/InteractionLocale.js.map +1 -0
- package/dist/utils/MemoryStore.d.ts +1 -1
- package/dist/utils/MemoryStore.d.ts.map +1 -1
- package/dist/utils/MemoryStore.js +1 -1
- package/dist/utils/MemoryStore.js.map +1 -1
- package/package.json +2 -2
- package/src/DBI.ts +55 -6
- package/src/index.ts +2 -2
- package/src/methods/hookInteractionListeners.ts +1 -1
- package/src/methods/publishInteractions.ts +85 -8
- package/src/types/InteractionLocale.ts +28 -0
- package/src/utils/MemoryStore.ts +1 -1
package/dist/DBI.d.ts
CHANGED
|
@@ -10,10 +10,11 @@ import { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from "./types/Me
|
|
|
10
10
|
import { DBIUserContextMenu, TDBIUserContextMenuOmitted } from "./types/UserContextMenu";
|
|
11
11
|
import { DBIModal, TDBIModalOmitted } from "./types/Modal";
|
|
12
12
|
import * as Sharding from "discord-hybrid-sharding";
|
|
13
|
+
import { DBIInteractionLocale, TDBIInteractionLocaleOmitted } from "./types/InteractionLocale";
|
|
13
14
|
export interface DBIStore {
|
|
14
15
|
get(key: string, defaultValue?: any): Promise<any>;
|
|
15
16
|
set(key: string, value: any): Promise<void>;
|
|
16
|
-
|
|
17
|
+
delete(key: string): Promise<void>;
|
|
17
18
|
has(key: string): Promise<boolean>;
|
|
18
19
|
}
|
|
19
20
|
export interface DBIConfig {
|
|
@@ -27,6 +28,9 @@ export interface DBIConfig {
|
|
|
27
28
|
defaultMemberPermissions: Discord.PermissionsString[];
|
|
28
29
|
};
|
|
29
30
|
sharding: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Persist store. (Default to MemoryStore thats not persis tho.)
|
|
33
|
+
*/
|
|
30
34
|
store: DBIStore;
|
|
31
35
|
}
|
|
32
36
|
export declare type TDBIConfigConstructor = Partial<DBIConfig>;
|
|
@@ -39,10 +43,11 @@ export interface DBIRegisterAPI {
|
|
|
39
43
|
SelectMenu(cfg: TDBISelectMenuOmitted): DBISelectMenu;
|
|
40
44
|
MessageContextMenu(cfg: TDBIMessageContextMenuOmitted): DBIMessageContextMenu;
|
|
41
45
|
UserContextMenu(cfg: TDBIUserContextMenuOmitted): DBIUserContextMenu;
|
|
46
|
+
InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;
|
|
42
47
|
Modal(cfg: TDBIModalOmitted): DBIModal;
|
|
43
48
|
onUnload(cb: () => Promise<any> | any): any;
|
|
44
49
|
}
|
|
45
|
-
export declare class DBI {
|
|
50
|
+
export declare class DBI<TOtherData = Record<string, any>> {
|
|
46
51
|
namespace: string;
|
|
47
52
|
config: DBIConfig;
|
|
48
53
|
client: Discord.Client<true>;
|
|
@@ -51,7 +56,8 @@ export declare class DBI {
|
|
|
51
56
|
events: Discord.Collection<string, DBIEvent>;
|
|
52
57
|
plugins: Discord.Collection<string, any>;
|
|
53
58
|
locales: Discord.Collection<string, DBILocale>;
|
|
54
|
-
|
|
59
|
+
interactionLocales: Discord.Collection<string, DBIInteractionLocale>;
|
|
60
|
+
other: TOtherData;
|
|
55
61
|
eventMap: Record<string, string[]>;
|
|
56
62
|
unloaders: Set<() => void>;
|
|
57
63
|
registers: Set<(...args: any[]) => any>;
|
|
@@ -68,6 +74,22 @@ export declare class DBI {
|
|
|
68
74
|
private _hookListeners;
|
|
69
75
|
private _unregisterAll;
|
|
70
76
|
private _registerAll;
|
|
77
|
+
/**
|
|
78
|
+
* Shorthands for modifying `dbi.data.other`
|
|
79
|
+
*/
|
|
80
|
+
get<K extends keyof TOtherData>(k: K, defaultValue?: TOtherData[K]): TOtherData[K];
|
|
81
|
+
/**
|
|
82
|
+
* Shorthands for modifying `dbi.data.other`
|
|
83
|
+
*/
|
|
84
|
+
set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any;
|
|
85
|
+
/**
|
|
86
|
+
* Shorthands for modifying `dbi.data.other`
|
|
87
|
+
*/
|
|
88
|
+
has(k: string): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Shorthands for modifying `dbi.data.other`
|
|
91
|
+
*/
|
|
92
|
+
delete(k: string): boolean;
|
|
71
93
|
login(): Promise<any>;
|
|
72
94
|
register(cb: (api: DBIRegisterAPI) => void): Promise<any>;
|
|
73
95
|
load(): Promise<boolean>;
|
package/dist/DBI.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBI.d.ts","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGzF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AAEpD,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,
|
|
1
|
+
{"version":3,"file":"DBI.d.ts","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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"}
|
package/dist/DBI.js
CHANGED
|
@@ -19,6 +19,8 @@ const hookEventListeners_1 = require("./methods/hookEventListeners");
|
|
|
19
19
|
const eventMap_json_1 = tslib_1.__importDefault(require("./data/eventMap.json"));
|
|
20
20
|
const Modal_1 = require("./types/Modal");
|
|
21
21
|
const Sharding = tslib_1.__importStar(require("discord-hybrid-sharding"));
|
|
22
|
+
const lodash_1 = tslib_1.__importDefault(require("lodash"));
|
|
23
|
+
const InteractionLocale_1 = require("./types/InteractionLocale");
|
|
22
24
|
class DBI {
|
|
23
25
|
namespace;
|
|
24
26
|
config;
|
|
@@ -44,6 +46,7 @@ class DBI {
|
|
|
44
46
|
events: new discord_js_1.default.Collection(),
|
|
45
47
|
plugins: new discord_js_1.default.Collection(),
|
|
46
48
|
locales: new discord_js_1.default.Collection(),
|
|
49
|
+
interactionLocales: new discord_js_1.default.Collection(),
|
|
47
50
|
other: {},
|
|
48
51
|
eventMap: eventMap_json_1.default,
|
|
49
52
|
unloaders: new Set(),
|
|
@@ -158,6 +161,16 @@ class DBI {
|
|
|
158
161
|
Locale = Object.assign(Locale, class {
|
|
159
162
|
constructor(...args) { return Locale.apply(this, args); }
|
|
160
163
|
});
|
|
164
|
+
let InteractionLocale = function (cfg) {
|
|
165
|
+
let dbiInteractionLocale = new InteractionLocale_1.DBIInteractionLocale(self, cfg);
|
|
166
|
+
if (self.data.interactionLocales.has(dbiInteractionLocale.name))
|
|
167
|
+
throw new Error(`DBIInteractionLocale "${dbiInteractionLocale.name}" already loaded!`);
|
|
168
|
+
self.data.interactionLocales.set(dbiInteractionLocale.name, dbiInteractionLocale);
|
|
169
|
+
return dbiInteractionLocale;
|
|
170
|
+
};
|
|
171
|
+
InteractionLocale = Object.assign(InteractionLocale, class {
|
|
172
|
+
constructor(...args) { return InteractionLocale.apply(this, args); }
|
|
173
|
+
});
|
|
161
174
|
await cb({
|
|
162
175
|
ChatInput,
|
|
163
176
|
Event,
|
|
@@ -168,12 +181,41 @@ class DBI {
|
|
|
168
181
|
MessageContextMenu,
|
|
169
182
|
UserContextMenu,
|
|
170
183
|
Modal,
|
|
184
|
+
InteractionLocale,
|
|
171
185
|
onUnload(cb) {
|
|
172
186
|
self.data.registerUnloaders.add(cb);
|
|
173
187
|
},
|
|
174
188
|
});
|
|
175
189
|
}
|
|
176
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Shorthands for modifying `dbi.data.other`
|
|
193
|
+
*/
|
|
194
|
+
get(k, defaultValue) {
|
|
195
|
+
if (this.has(k)) {
|
|
196
|
+
this.set(k, defaultValue);
|
|
197
|
+
return defaultValue;
|
|
198
|
+
}
|
|
199
|
+
return lodash_1.default.get(this.data.other, k);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Shorthands for modifying `dbi.data.other`
|
|
203
|
+
*/
|
|
204
|
+
set(k, v) {
|
|
205
|
+
this.data.other = lodash_1.default.set(this.data.other, k, v);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Shorthands for modifying `dbi.data.other`
|
|
209
|
+
*/
|
|
210
|
+
has(k) {
|
|
211
|
+
return lodash_1.default.has(this.data.other, k);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Shorthands for modifying `dbi.data.other`
|
|
215
|
+
*/
|
|
216
|
+
delete(k) {
|
|
217
|
+
return lodash_1.default.unset(this.data.other, k);
|
|
218
|
+
}
|
|
177
219
|
async login() {
|
|
178
220
|
await this.client.login(this.config.discord.token);
|
|
179
221
|
}
|
|
@@ -201,10 +243,10 @@ class DBI {
|
|
|
201
243
|
let interactions = this.data.interactions.filter(i => i.type == "ChatInput" || i.type == "MessageContextMenu" || i.type == "UserContextMenu");
|
|
202
244
|
switch (args[0]) {
|
|
203
245
|
case "Global": {
|
|
204
|
-
return await (0, publishInteractions_1.publishInteractions)(this.config.discord.token, args[1] ? new discord_js_1.default.Collection() : interactions, args[0]);
|
|
246
|
+
return await (0, publishInteractions_1.publishInteractions)(this.config.discord.token, args[1] ? new discord_js_1.default.Collection() : interactions, this.data.interactionLocales, args[0]);
|
|
205
247
|
}
|
|
206
248
|
case "Guild": {
|
|
207
|
-
return await (0, publishInteractions_1.publishInteractions)(this.config.discord.token, args[2] ? new discord_js_1.default.Collection() : interactions, args[0], args[1]);
|
|
249
|
+
return await (0, publishInteractions_1.publishInteractions)(this.config.discord.token, args[2] ? new discord_js_1.default.Collection() : interactions, this.data.interactionLocales, args[0], args[1]);
|
|
208
250
|
}
|
|
209
251
|
}
|
|
210
252
|
}
|
package/dist/DBI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBIChatInput, TDBIChatInputOmitted } from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport { DBILocale, TDBILocaleConstructor, TDBILocaleString } from \"./types/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Button\";\r\nimport { DBISelectMenu, TDBISelectMenuOmitted } from \"./types/SelectMenu\";\r\nimport { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from \"./types/MessageContextMenu\";\r\nimport { DBIUserContextMenu, TDBIUserContextMenuOmitted } from \"./types/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\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 del(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport interface DBIConfig {\r\n discord: {\r\n token: string;\r\n options: Discord.ClientOptions\r\n }\r\n defaults: {\r\n locale: TDBILocaleString,\r\n directMessages: boolean,\r\n defaultMemberPermissions: Discord.PermissionsString[]\r\n };\r\n\r\n sharding: boolean;\r\n\r\n store: DBIStore;\r\n}\r\n\r\nexport type TDBIConfigConstructor = Partial<DBIConfig>;\r\n\r\nexport interface DBIRegisterAPI {\r\n ChatInput(cfg: TDBIChatInputOmitted): DBIChatInput;\r\n ChatInputOptions: typeof DBIChatInputOptions;\r\n Event(cfg: TDBIEventOmitted): DBIEvent;\r\n Locale(cfg: TDBILocaleConstructor): DBILocale;\r\n Button(cfg: TDBIButtonOmitted): DBIButton;\r\n SelectMenu(cfg: TDBISelectMenuOmitted): DBISelectMenu;\r\n MessageContextMenu(cfg: TDBIMessageContextMenuOmitted): DBIMessageContextMenu;\r\n UserContextMenu(cfg: TDBIUserContextMenuOmitted): DBIUserContextMenu;\r\n Modal(cfg: TDBIModalOmitted): DBIModal;\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI {\r\n namespace: string;\r\n config: DBIConfig;\r\n client: Discord.Client<true>;\r\n data: {\r\n interactions: Discord.Collection<string, DBIChatInput | DBIButton | DBISelectMenu | DBIMessageContextMenu | DBIUserContextMenu | DBIModal>;\r\n events: Discord.Collection<string, DBIEvent>;\r\n plugins: Discord.Collection<string, any>;\r\n locales: Discord.Collection<string, DBILocale>;\r\n other: Record<string, any>;\r\n eventMap: Record<string, 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 }>;\r\n };\r\n events: Events;\r\n cluster?: Sharding.Client;\r\n private _loaded: boolean;\r\n constructor(namespace: string, config: TDBIConfigConstructor) {\r\n this.namespace = namespace;\r\n\r\n config.store = config.store as any || new MemoryStore();\r\n config.defaults = {\r\n locale: \"en\",\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {})\r\n };\r\n config.sharding = config.sharding ?? false;\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 plugins: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n other: {},\r\n eventMap,\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: new Map()\r\n }\r\n\r\n this.events = new Events(this);\r\n this.client = new Discord.Client({\r\n ...(config.discord?.options || {}) as any,\r\n ...(config.sharding ? {\r\n shards: (Sharding as any).data.SHARD_LIST,\r\n shardCount: (Sharding as any).data.TOTAL_SHARDS\r\n } : {})\r\n });\r\n this.cluster = config.sharding ? new Sharding.Client(this.client) : undefined;\r\n this._hookListeners();\r\n this._loaded = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n this.data.unloaders.add(hookInteractionListeners(this));\r\n this.data.unloaders.add(hookEventListeners(this));\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.plugins.clear();\r\n }\r\n\r\n private async _registerAll() {\r\n const self = this;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function(cfg: DBIChatInput) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name)) throw new Error(`DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type}\"!`);\r\n self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(ChatInput, class { constructor(...args: any[]) { return ChatInput.apply(this, args as any); } });\r\n\r\n let Event = function(cfg: TDBIEventOmitted) {\r\n let dbiEvent = new DBIEvent(self, cfg);\r\n if (self.data.events.has(dbiEvent.name)) throw new Error(`DBIEvent \"${dbiEvent.name}\" already loaded!`);\r\n self.data.events.set(dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(Event, class { constructor(...args: any[]) { return Event.apply(this, args as any); } });\r\n\r\n let Button = function(cfg: TDBIButtonOmitted) {\r\n let dbiButton = new DBIButton(self, cfg);\r\n if (self.data.interactions.has(dbiButton.name)) throw new Error(`DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type}\"!`);\r\n self.data.interactions.set(dbiButton.name, dbiButton);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(Button, class { constructor(...args: any[]) { return Button.apply(this, args as any); } });\r\n\r\n let SelectMenu = function(cfg: TDBISelectMenuOmitted) {\r\n let dbiSelectMenu = new DBISelectMenu(self, cfg);\r\n if (self.data.interactions.has(dbiSelectMenu.name)) throw new Error(`DBISelectMenu \"${dbiSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiSelectMenu.name, dbiSelectMenu);\r\n return dbiSelectMenu;\r\n };\r\n SelectMenu = Object.assign(SelectMenu, class { constructor(...args: any[]) { return SelectMenu.apply(this, args as any); } });\r\n\r\n let MessageContextMenu = function(cfg: TDBIMessageContextMenuOmitted) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self, cfg);\r\n if (self.data.interactions.has(dbiMessageContextMenu.name)) throw new Error(`DBIMessageContextMenu \"${dbiMessageContextMenu.name}\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiMessageContextMenu.name, dbiMessageContextMenu);\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(MessageContextMenu, class { constructor(...args: any[]) { return MessageContextMenu.apply(this, args as any); } });\r\n\r\n let UserContextMenu = function(cfg: TDBIUserContextMenuOmitted) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self, cfg);\r\n if (self.data.interactions.has(dbiUserContextMenu.name)) throw new Error(`DBIUserContextMenu \"${dbiUserContextMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiUserContextMenu.name, dbiUserContextMenu);\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(UserContextMenu, class { constructor(...args: any[]) { return UserContextMenu.apply(this, args as any); } });\r\n\r\n let Modal = function(cfg: TDBIModalOmitted) {\r\n let dbiModal = new DBIModal(self, cfg);\r\n if (self.data.interactions.has(dbiModal.name)) throw new Error(`DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type}\"!`);\r\n self.data.interactions.set(dbiModal.name, dbiModal);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(Modal, class { constructor(...args: any[]) { return Modal.apply(this, args as any); } });\r\n\r\n\r\n let Locale = function(cfg: TDBILocaleConstructor) {\r\n let dbiLocale = new DBILocale(self, cfg);\r\n if (self.data.locales.has(dbiLocale.name)) throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(Locale, class { constructor(...args: any[]) { return Locale.apply(this, args as any); } });\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions: DBIChatInputOptions,\r\n Locale,\r\n Button,\r\n SelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n Modal,\r\n onUnload(cb: ()=> Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n }\r\n\r\n async login(): Promise<any> {\r\n await this.client.login(this.config.discord.token);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll();\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 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(i => i.type == \"ChatInput\" || i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\") as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.config.discord.token,\r\n args[1] ? new Discord.Collection() : interactions,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.config.discord.token,\r\n args[2] ? new Discord.Collection() : interactions,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n\r\n \r\n}"]}
|
|
1
|
+
{"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBIChatInput, TDBIChatInputOmitted } from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport { DBILocale, TDBILocaleConstructor, TDBILocaleString } from \"./types/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Button\";\r\nimport { DBISelectMenu, TDBISelectMenuOmitted } from \"./types/SelectMenu\";\r\nimport { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from \"./types/MessageContextMenu\";\r\nimport { DBIUserContextMenu, TDBIUserContextMenuOmitted } from \"./types/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport { DBIInteractionLocale, TDBIInteractionLocaleOmitted } from \"./types/InteractionLocale\";\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 interface DBIConfig {\r\n discord: {\r\n token: string;\r\n options: Discord.ClientOptions\r\n }\r\n defaults: {\r\n locale: TDBILocaleString,\r\n directMessages: boolean,\r\n defaultMemberPermissions: Discord.PermissionsString[]\r\n };\r\n\r\n sharding: boolean;\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store: DBIStore;\r\n}\r\n\r\nexport type TDBIConfigConstructor = Partial<DBIConfig>;\r\n\r\nexport interface DBIRegisterAPI {\r\n ChatInput(cfg: TDBIChatInputOmitted): DBIChatInput;\r\n ChatInputOptions: typeof DBIChatInputOptions;\r\n Event(cfg: TDBIEventOmitted): DBIEvent;\r\n Locale(cfg: TDBILocaleConstructor): DBILocale;\r\n Button(cfg: TDBIButtonOmitted): DBIButton;\r\n SelectMenu(cfg: TDBISelectMenuOmitted): DBISelectMenu;\r\n MessageContextMenu(cfg: TDBIMessageContextMenuOmitted): DBIMessageContextMenu;\r\n UserContextMenu(cfg: TDBIUserContextMenuOmitted): DBIUserContextMenu;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted): DBIModal;\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<TOtherData = Record<string, any>> {\r\n namespace: string;\r\n config: DBIConfig;\r\n client: Discord.Client<true>;\r\n data: {\r\n interactions: Discord.Collection<string, DBIChatInput | DBIButton | DBISelectMenu | DBIMessageContextMenu | DBIUserContextMenu | DBIModal>;\r\n events: Discord.Collection<string, DBIEvent>;\r\n plugins: Discord.Collection<string, any>;\r\n locales: Discord.Collection<string, DBILocale>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, 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 }>;\r\n };\r\n events: Events;\r\n cluster?: Sharding.Client;\r\n private _loaded: boolean;\r\n constructor(namespace: string, config: TDBIConfigConstructor) {\r\n this.namespace = namespace;\r\n\r\n config.store = config.store as any || new MemoryStore();\r\n config.defaults = {\r\n locale: \"en\",\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {})\r\n };\r\n config.sharding = config.sharding ?? false;\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 plugins: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: {} as TOtherData,\r\n eventMap,\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: new Map()\r\n }\r\n\r\n this.events = new Events(this);\r\n this.client = new Discord.Client({\r\n ...(config.discord?.options || {}) as any,\r\n ...(config.sharding ? {\r\n shards: (Sharding as any).data.SHARD_LIST,\r\n shardCount: (Sharding as any).data.TOTAL_SHARDS\r\n } : {})\r\n });\r\n this.cluster = config.sharding ? new Sharding.Client(this.client) : undefined;\r\n this._hookListeners();\r\n this._loaded = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n this.data.unloaders.add(hookInteractionListeners(this));\r\n this.data.unloaders.add(hookEventListeners(this));\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.plugins.clear();\r\n }\r\n\r\n private async _registerAll() {\r\n const self = this;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function(cfg: DBIChatInput) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name)) throw new Error(`DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type}\"!`);\r\n self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(ChatInput, class { constructor(...args: any[]) { return ChatInput.apply(this, args as any); } });\r\n\r\n let Event = function(cfg: TDBIEventOmitted) {\r\n let dbiEvent = new DBIEvent(self, cfg);\r\n if (self.data.events.has(dbiEvent.name)) throw new Error(`DBIEvent \"${dbiEvent.name}\" already loaded!`);\r\n self.data.events.set(dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(Event, class { constructor(...args: any[]) { return Event.apply(this, args as any); } });\r\n\r\n let Button = function(cfg: TDBIButtonOmitted) {\r\n let dbiButton = new DBIButton(self, cfg);\r\n if (self.data.interactions.has(dbiButton.name)) throw new Error(`DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type}\"!`);\r\n self.data.interactions.set(dbiButton.name, dbiButton);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(Button, class { constructor(...args: any[]) { return Button.apply(this, args as any); } });\r\n\r\n let SelectMenu = function(cfg: TDBISelectMenuOmitted) {\r\n let dbiSelectMenu = new DBISelectMenu(self, cfg);\r\n if (self.data.interactions.has(dbiSelectMenu.name)) throw new Error(`DBISelectMenu \"${dbiSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiSelectMenu.name, dbiSelectMenu);\r\n return dbiSelectMenu;\r\n };\r\n SelectMenu = Object.assign(SelectMenu, class { constructor(...args: any[]) { return SelectMenu.apply(this, args as any); } });\r\n\r\n let MessageContextMenu = function(cfg: TDBIMessageContextMenuOmitted) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self, cfg);\r\n if (self.data.interactions.has(dbiMessageContextMenu.name)) throw new Error(`DBIMessageContextMenu \"${dbiMessageContextMenu.name}\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiMessageContextMenu.name, dbiMessageContextMenu);\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(MessageContextMenu, class { constructor(...args: any[]) { return MessageContextMenu.apply(this, args as any); } });\r\n\r\n let UserContextMenu = function(cfg: TDBIUserContextMenuOmitted) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self, cfg);\r\n if (self.data.interactions.has(dbiUserContextMenu.name)) throw new Error(`DBIUserContextMenu \"${dbiUserContextMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiUserContextMenu.name, dbiUserContextMenu);\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(UserContextMenu, class { constructor(...args: any[]) { return UserContextMenu.apply(this, args as any); } });\r\n\r\n let Modal = function(cfg: TDBIModalOmitted) {\r\n let dbiModal = new DBIModal(self, cfg);\r\n if (self.data.interactions.has(dbiModal.name)) throw new Error(`DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type}\"!`);\r\n self.data.interactions.set(dbiModal.name, dbiModal);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(Modal, class { constructor(...args: any[]) { return Modal.apply(this, args as any); } });\r\n\r\n let Locale = function(cfg: TDBILocaleConstructor) {\r\n let dbiLocale = new DBILocale(self, cfg);\r\n if (self.data.locales.has(dbiLocale.name)) throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(Locale, class { constructor(...args: any[]) { return Locale.apply(this, args as any); } });\r\n\r\n let InteractionLocale = function(cfg: TDBIInteractionLocaleOmitted) {\r\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\r\n if (self.data.interactionLocales.has(dbiInteractionLocale.name)) throw new Error(`DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`);\r\n self.data.interactionLocales.set(dbiInteractionLocale.name, dbiInteractionLocale);\r\n return dbiInteractionLocale;\r\n };\r\n InteractionLocale = Object.assign(InteractionLocale, class { constructor(...args: any[]) { return InteractionLocale.apply(this, args as any); } });\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions: DBIChatInputOptions,\r\n Locale,\r\n Button,\r\n SelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n Modal,\r\n InteractionLocale,\r\n onUnload(cb: ()=> Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(k: K, defaultValue?: TOtherData[K]): TOtherData[K] {\r\n if (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 this.client.login(this.config.discord.token);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll();\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 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(i => i.type == \"ChatInput\" || i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\") as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.config.discord.token,\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.config.discord.token,\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 \r\n}"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { DBI, TDBIConfigConstructor } from "./DBI";
|
|
2
2
|
export { recursiveImport } from "./utils/recursiveImport";
|
|
3
3
|
export { MemoryStore } from "./utils/MemoryStore";
|
|
4
|
-
export declare function createDBI(namespace: string, cfg: TDBIConfigConstructor): DBI
|
|
4
|
+
export declare function createDBI<TOtherType = Record<string, any>>(namespace: string, cfg: TDBIConfigConstructor): DBI<TOtherType>;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,wBAAgB,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,qBAAqB,GAAG,GAAG,CAAC,UAAU,CAAC,CAE1H"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAmD;AACnD,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,SAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAmD;AACnD,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,SAAgB,SAAS,CAAmC,SAAiB,EAAE,GAA0B;IACvG,OAAO,IAAI,SAAG,CAAa,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAFD,8BAEC","sourcesContent":["import { DBI, TDBIConfigConstructor } from \"./DBI\";\r\nexport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nexport function createDBI<TOtherType = Record<string, any>>(namespace: string, cfg: TDBIConfigConstructor): DBI<TOtherType> {\r\n return new DBI<TOtherType>(namespace, cfg);\r\n}"]}
|
|
@@ -55,7 +55,7 @@ function hookInteractionListeners(dbi) {
|
|
|
55
55
|
let key = `RateLimit["${rateLimitKeyMap[type]}"]`;
|
|
56
56
|
let val = await dbi.config.store.get(key);
|
|
57
57
|
if (val && Date.now() > val.at + val.duration) {
|
|
58
|
-
await dbi.config.store.
|
|
58
|
+
await dbi.config.store.delete(key);
|
|
59
59
|
val = null;
|
|
60
60
|
}
|
|
61
61
|
if (val) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<Discord.CacheType>) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId?.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = userLocaleName ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : null;\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${inter.user.id}`,\r\n \"Channel\": `${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n locale,\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import Discord from "discord.js";
|
|
2
2
|
import { DBIChatInput } from "../types/ChatInput/ChatInput";
|
|
3
|
-
|
|
3
|
+
import { DBIInteractionLocale } from "../types/InteractionLocale";
|
|
4
|
+
export declare function publishInteractions(clientToken: string, interactions: Discord.Collection<string, DBIChatInput>, interactionsLocales: Discord.Collection<string, DBIInteractionLocale>, publishType: "Guild" | "Global", guildId?: string): Promise<void>;
|
|
5
|
+
export declare function localeifyOptions(options: any[], localeData: any): any[];
|
|
6
|
+
export declare function formatLocale(locale: DBIInteractionLocale): any;
|
|
4
7
|
//# sourceMappingURL=publishInteractions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publishInteractions.d.ts","sourceRoot":"","sources":["../../src/methods/publishInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"publishInteractions.d.ts","sourceRoot":"","sources":["../../src/methods/publishInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKlE,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,EACtD,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACrE,WAAW,EAAE,OAAO,GAAG,QAAQ,EAC/B,OAAO,CAAC,EAAE,MAAM,iBAwKjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,EAAE,CAOvE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,CAsC9D"}
|
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.publishInteractions = void 0;
|
|
3
|
+
exports.formatLocale = exports.localeifyOptions = exports.publishInteractions = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const rest_1 = require("@discordjs/rest");
|
|
6
6
|
const v9_1 = require("discord-api-types/v9");
|
|
7
7
|
const permissions_1 = require("../utils/permissions");
|
|
8
8
|
const snakecase_keys_1 = tslib_1.__importDefault(require("snakecase-keys"));
|
|
9
9
|
const PUBLISHABLE_TYPES = ["ChatInput", "UserContextMenu", "MessageContextMenu"];
|
|
10
|
-
|
|
10
|
+
const ORIGINAL_LOCALES = ["da", "de", "en-GB", "en-US", "es-ES", "fr", "hr", "it", "lt", "hu", "nl", "no", "pl", "pt-BR", "ro", "fi", "sv-SE", "vi", "tr", "cs", "el", "bg", "ru", "uk", "hi", "th", "zh-CN", "ja", "zh-TW", "ko"];
|
|
11
|
+
async function publishInteractions(clientToken, interactions, interactionsLocales, publishType, guildId) {
|
|
11
12
|
interactions = interactions.filter(i => PUBLISHABLE_TYPES.includes(i.type));
|
|
12
13
|
const rest = new rest_1.REST({ version: "9" });
|
|
13
14
|
rest.setToken(clientToken);
|
|
14
15
|
const me = await rest.get(v9_1.Routes.user());
|
|
15
|
-
|
|
16
|
+
let body = interactions.reduce((all, current) => {
|
|
16
17
|
switch (current.type) {
|
|
17
18
|
case "ChatInput": {
|
|
18
19
|
let nameSplitted = current.name.split(" ");
|
|
20
|
+
let localeData = formatLocale(interactionsLocales.get(current.name) ?? {});
|
|
19
21
|
switch (nameSplitted.length) {
|
|
20
22
|
case 1: {
|
|
21
23
|
all.push({
|
|
@@ -24,24 +26,30 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
24
26
|
name: nameSplitted[0],
|
|
25
27
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
26
28
|
dm_permission: current.directMessages,
|
|
27
|
-
options: (
|
|
29
|
+
options: localeifyOptions(current.options || [], localeData.optionsLocales),
|
|
30
|
+
name_localizations: localeData.nameLocales(0),
|
|
31
|
+
description_localizations: localeData.descriptionLocales,
|
|
28
32
|
});
|
|
29
33
|
break;
|
|
30
34
|
}
|
|
31
35
|
case 2: {
|
|
32
36
|
let baseItem = all.find(i => i.name == current.name.split(" ")[0] && i.type == "ChatInput");
|
|
37
|
+
let localeData = formatLocale(interactionsLocales.get(current.name) ?? {});
|
|
33
38
|
let option = {
|
|
34
39
|
type: v9_1.ApplicationCommandOptionType.Subcommand,
|
|
35
40
|
name: nameSplitted[1],
|
|
36
41
|
description: current.description,
|
|
37
42
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
38
43
|
dm_permission: current.directMessages,
|
|
39
|
-
options: (
|
|
44
|
+
options: localeifyOptions(current.options || [], localeData.optionsLocales),
|
|
45
|
+
name_localizations: localeData.nameLocales(1),
|
|
46
|
+
description_localizations: localeData.descriptionLocales,
|
|
40
47
|
};
|
|
41
48
|
if (!baseItem) {
|
|
42
49
|
all.push({
|
|
43
50
|
type: v9_1.ApplicationCommandType.ChatInput,
|
|
44
51
|
name: nameSplitted[0],
|
|
52
|
+
name_localizations: localeData.nameLocales(0),
|
|
45
53
|
description: "...",
|
|
46
54
|
options: [
|
|
47
55
|
option
|
|
@@ -55,15 +63,18 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
55
63
|
}
|
|
56
64
|
case 3: {
|
|
57
65
|
let level1Item = all.find(i => i.name == current.name.split(" ")[0] && i.type == "ChatInput");
|
|
66
|
+
let localeData = formatLocale(interactionsLocales.get(current.name) ?? {});
|
|
58
67
|
if (!level1Item) {
|
|
59
68
|
all.push({
|
|
60
69
|
type: v9_1.ApplicationCommandType.ChatInput,
|
|
61
70
|
name: nameSplitted[0],
|
|
71
|
+
name_localizations: localeData.nameLocales(0),
|
|
62
72
|
description: "...",
|
|
63
73
|
options: [
|
|
64
74
|
{
|
|
65
75
|
type: v9_1.ApplicationCommandOptionType.SubcommandGroup,
|
|
66
76
|
name: nameSplitted[1],
|
|
77
|
+
name_localizations: localeData.nameLocales(1),
|
|
67
78
|
description: "...",
|
|
68
79
|
options: [
|
|
69
80
|
{
|
|
@@ -72,7 +83,9 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
72
83
|
description: current.description,
|
|
73
84
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
74
85
|
dm_permission: current.directMessages,
|
|
75
|
-
options: (
|
|
86
|
+
options: localeifyOptions(current.options || [], localeData.optionsLocales),
|
|
87
|
+
name_localizations: localeData.nameLocales(2),
|
|
88
|
+
description_localizations: localeData.descriptionLocales,
|
|
76
89
|
}
|
|
77
90
|
]
|
|
78
91
|
}
|
|
@@ -85,6 +98,7 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
85
98
|
level1Item.options.push({
|
|
86
99
|
type: v9_1.ApplicationCommandOptionType.SubcommandGroup,
|
|
87
100
|
name: nameSplitted[1],
|
|
101
|
+
name_localizations: localeData.nameLocales(1),
|
|
88
102
|
description: "...",
|
|
89
103
|
options: [
|
|
90
104
|
{
|
|
@@ -93,7 +107,9 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
93
107
|
description: current.description,
|
|
94
108
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
95
109
|
dm_permission: current.directMessages,
|
|
96
|
-
options: (
|
|
110
|
+
options: localeifyOptions(current.options || [], localeData.optionsLocales),
|
|
111
|
+
name_localizations: localeData.nameLocales(2),
|
|
112
|
+
description_localizations: localeData.descriptionLocales
|
|
97
113
|
}
|
|
98
114
|
]
|
|
99
115
|
});
|
|
@@ -105,7 +121,9 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
105
121
|
description: current.description,
|
|
106
122
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
107
123
|
dm_permission: current.directMessages,
|
|
108
|
-
options: (
|
|
124
|
+
options: localeifyOptions(current.options || [], localeData.optionsLocales),
|
|
125
|
+
name_localizations: localeData.nameLocales(2),
|
|
126
|
+
description_localizations: localeData.descriptionLocales,
|
|
109
127
|
});
|
|
110
128
|
}
|
|
111
129
|
}
|
|
@@ -115,26 +133,33 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
115
133
|
break;
|
|
116
134
|
}
|
|
117
135
|
case "MessageContextMenu": {
|
|
136
|
+
let localeData = formatLocale(interactionsLocales.get(current.name) ?? {});
|
|
118
137
|
all.push({
|
|
119
138
|
type: v9_1.ApplicationCommandType.Message,
|
|
120
139
|
name: current.name,
|
|
121
140
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
122
|
-
dm_permission: current.directMessages
|
|
141
|
+
dm_permission: current.directMessages,
|
|
142
|
+
name_localizations: localeData.allNameLocales,
|
|
143
|
+
description_localizations: localeData.descriptionLocales,
|
|
123
144
|
});
|
|
124
145
|
break;
|
|
125
146
|
}
|
|
126
147
|
case "UserContextMenu": {
|
|
148
|
+
let localeData = formatLocale(interactionsLocales.get(current.name) ?? {});
|
|
127
149
|
all.push({
|
|
128
150
|
type: v9_1.ApplicationCommandType.User,
|
|
129
151
|
name: current.name,
|
|
130
152
|
default_member_permissions: (0, permissions_1.reducePermissions)(current.defaultMemberPermissions).toString(),
|
|
131
|
-
dm_permission: current.directMessages
|
|
153
|
+
dm_permission: current.directMessages,
|
|
154
|
+
name_localizations: localeData.allNameLocales,
|
|
155
|
+
description_localizations: localeData.descriptionLocales
|
|
132
156
|
});
|
|
133
157
|
break;
|
|
134
158
|
}
|
|
135
159
|
}
|
|
136
160
|
return all;
|
|
137
161
|
}, []);
|
|
162
|
+
body = (0, snakecase_keys_1.default)(body);
|
|
138
163
|
switch (publishType) {
|
|
139
164
|
case "Global": {
|
|
140
165
|
await rest.put(v9_1.Routes.applicationGuildCommands(me.id, guildId), { body });
|
|
@@ -147,4 +172,52 @@ async function publishInteractions(clientToken, interactions, publishType, guild
|
|
|
147
172
|
}
|
|
148
173
|
}
|
|
149
174
|
exports.publishInteractions = publishInteractions;
|
|
175
|
+
function localeifyOptions(options, localeData) {
|
|
176
|
+
return options.map(i => {
|
|
177
|
+
return localeData[i.name] ? Object.assign(i, {
|
|
178
|
+
name_localizations: localeData[i.name].nameLocales,
|
|
179
|
+
description_localizations: localeData[i.name].descriptionLocales,
|
|
180
|
+
}) : i;
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
exports.localeifyOptions = localeifyOptions;
|
|
184
|
+
function formatLocale(locale) {
|
|
185
|
+
let allNameLocales = {};
|
|
186
|
+
let descriptionLocales = {};
|
|
187
|
+
let optionsLocales = {};
|
|
188
|
+
function nameLocales(index) {
|
|
189
|
+
return Object.fromEntries(Object.entries(allNameLocales).map(i => [i[0], i[1].split(" ").at(index)]));
|
|
190
|
+
}
|
|
191
|
+
if (!locale?.data)
|
|
192
|
+
return {
|
|
193
|
+
nameLocales,
|
|
194
|
+
allNameLocales,
|
|
195
|
+
descriptionLocales,
|
|
196
|
+
optionsLocales
|
|
197
|
+
};
|
|
198
|
+
Object.entries(locale.data).forEach(([shortLocale, localeData]) => {
|
|
199
|
+
let longAliases = ORIGINAL_LOCALES.filter(i => i.split("-").at(0) == shortLocale);
|
|
200
|
+
longAliases.forEach((longLocale) => {
|
|
201
|
+
allNameLocales[longLocale] = localeData.name;
|
|
202
|
+
descriptionLocales[longLocale] = localeData.description;
|
|
203
|
+
Object.entries(localeData.options || []).forEach(([optionName, optionData]) => {
|
|
204
|
+
if (!optionsLocales[optionName])
|
|
205
|
+
optionsLocales[optionName] = {};
|
|
206
|
+
if (!optionsLocales[optionName].nameLocales)
|
|
207
|
+
optionsLocales[optionName].nameLocales = {};
|
|
208
|
+
if (!optionsLocales[optionName].descriptionLocales)
|
|
209
|
+
optionsLocales[optionName].descriptionLocales = {};
|
|
210
|
+
optionsLocales[optionName].nameLocales[longLocale] = optionData.name;
|
|
211
|
+
optionsLocales[optionName].descriptionLocales[longLocale] = optionData.description;
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
return {
|
|
216
|
+
nameLocales,
|
|
217
|
+
allNameLocales,
|
|
218
|
+
descriptionLocales,
|
|
219
|
+
optionsLocales
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
exports.formatLocale = formatLocale;
|
|
150
223
|
//# sourceMappingURL=publishInteractions.js.map
|