@mostfeatured/dbi 0.0.28 → 0.0.31

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 CHANGED
@@ -3,7 +3,7 @@ import { DBIChatInput, TDBIChatInputOmitted } from "./types/ChatInput/ChatInput"
3
3
  import { DBIChatInputOptions } from "./types/ChatInput/ChatInputOptions";
4
4
  import { DBIEvent, TDBIEventOmitted } from "./types/Event";
5
5
  import { Events } from "./Events";
6
- import { DBILocale, LangConstructorObject, TDBILocaleConstructor, TDBILocaleString } from "./types/Locale";
6
+ import { DBILocale, TDBILocaleConstructor, TDBILocaleString } from "./types/Locale";
7
7
  import { DBIButton, TDBIButtonOmitted } from "./types/Button";
8
8
  import { DBISelectMenu, TDBISelectMenuOmitted } from "./types/SelectMenu";
9
9
  import { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from "./types/MessageContextMenu";
@@ -27,12 +27,18 @@ export interface DBIConfig {
27
27
  directMessages: boolean;
28
28
  defaultMemberPermissions: Discord.PermissionsString[];
29
29
  };
30
- sharding: boolean;
30
+ sharding: "hybrid" | "default" | "off";
31
31
  /**
32
32
  * Persist store. (Default to MemoryStore thats not persis tho.)
33
33
  */
34
34
  store: DBIStore;
35
- clearRefsAfter?: number;
35
+ references: {
36
+ autoClear?: {
37
+ check: number;
38
+ ttl: number;
39
+ };
40
+ };
41
+ strict: boolean;
36
42
  }
37
43
  export interface DBIConfigConstructor {
38
44
  discord: {
@@ -44,18 +50,24 @@ export interface DBIConfigConstructor {
44
50
  directMessages?: boolean;
45
51
  defaultMemberPermissions?: Discord.PermissionsString[];
46
52
  };
47
- sharding?: boolean;
53
+ sharding?: "hybrid" | "default" | "off";
48
54
  /**
49
55
  * Persist store. (Default to MemoryStore thats not persis tho.)
50
56
  */
51
57
  store?: DBIStore;
52
- clearRefsAfter?: number;
58
+ references?: {
59
+ autoClear?: {
60
+ check: number;
61
+ ttl: number;
62
+ };
63
+ };
64
+ strict?: boolean;
53
65
  }
54
- export interface DBIRegisterAPI<TLocaleFormat> {
66
+ export interface DBIRegisterAPI {
55
67
  ChatInput(cfg: TDBIChatInputOmitted): DBIChatInput;
56
68
  ChatInputOptions: typeof DBIChatInputOptions;
57
69
  Event(cfg: TDBIEventOmitted): DBIEvent;
58
- Locale(cfg: TDBILocaleConstructor<TLocaleFormat>): DBILocale;
70
+ Locale(cfg: TDBILocaleConstructor): DBILocale;
59
71
  Button(cfg: TDBIButtonOmitted): DBIButton;
60
72
  SelectMenu(cfg: TDBISelectMenuOmitted): DBISelectMenu;
61
73
  MessageContextMenu(cfg: TDBIMessageContextMenuOmitted): DBIMessageContextMenu;
@@ -64,15 +76,16 @@ export interface DBIRegisterAPI<TLocaleFormat> {
64
76
  Modal(cfg: TDBIModalOmitted): DBIModal;
65
77
  onUnload(cb: () => Promise<any> | any): any;
66
78
  }
67
- export declare class DBI<TOtherData = Record<string, any>, TLocaleFormat = LangConstructorObject> {
79
+ export declare type TDBIInteractions = DBIChatInput | DBIButton | DBISelectMenu | DBIMessageContextMenu | DBIUserContextMenu | DBIModal;
80
+ export declare class DBI<TOtherData = Record<string, any>> {
68
81
  namespace: string;
69
82
  config: DBIConfig;
70
83
  client: Discord.Client<true>;
71
84
  data: {
72
- interactions: Discord.Collection<string, DBIChatInput | DBIButton | DBISelectMenu | DBIMessageContextMenu | DBIUserContextMenu | DBIModal>;
85
+ interactions: Discord.Collection<string, TDBIInteractions>;
73
86
  events: Discord.Collection<string, DBIEvent>;
74
87
  plugins: Discord.Collection<string, any>;
75
- locales: Discord.Collection<string, DBILocale<TLocaleFormat>>;
88
+ locales: Discord.Collection<string, DBILocale>;
76
89
  interactionLocales: Discord.Collection<string, DBIInteractionLocale>;
77
90
  other: TOtherData;
78
91
  eventMap: Record<string, string[]>;
@@ -82,6 +95,7 @@ export declare class DBI<TOtherData = Record<string, any>, TLocaleFormat = LangC
82
95
  refs: Map<string, {
83
96
  at: number;
84
97
  value: any;
98
+ ttl?: number;
85
99
  }>;
86
100
  };
87
101
  events: Events;
@@ -93,6 +107,22 @@ export declare class DBI<TOtherData = Record<string, any>, TLocaleFormat = LangC
93
107
  private _unhookListeners;
94
108
  private _unregisterAll;
95
109
  private _registerAll;
110
+ /**
111
+ * this.data.interactions.get(name)
112
+ */
113
+ interaction(name: string): TDBIInteractions;
114
+ /**
115
+ * this.data.events.get(name)
116
+ */
117
+ event(name: string): DBIEvent;
118
+ /**
119
+ * this.data.locales.get(name)
120
+ */
121
+ locale(name: string): DBILocale;
122
+ /**
123
+ * this.data.plugins.get(name)
124
+ */
125
+ plugin(name: string): any;
96
126
  /**
97
127
  * Shorthands for modifying `dbi.data.other`
98
128
  */
@@ -110,7 +140,7 @@ export declare class DBI<TOtherData = Record<string, any>, TLocaleFormat = LangC
110
140
  */
111
141
  delete(k: string): boolean;
112
142
  login(): Promise<any>;
113
- register(cb: (api: DBIRegisterAPI<TLocaleFormat>) => void): Promise<any>;
143
+ register(cb: (api: DBIRegisterAPI) => void): Promise<any>;
114
144
  load(): Promise<boolean>;
115
145
  unload(): Promise<boolean>;
116
146
  get loaded(): boolean;
package/dist/DBI.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"DBI.d.ts","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DBI.d.ts","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":"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"}
package/dist/DBI.js CHANGED
@@ -39,7 +39,12 @@ class DBI {
39
39
  directMessages: false,
40
40
  ...(config.defaults || {})
41
41
  };
42
- config.sharding = config.sharding ?? false;
42
+ config.sharding = config.sharding ?? "off";
43
+ config.strict = config.strict ?? true;
44
+ config.references = {
45
+ autoClear: undefined,
46
+ ...(config.references || {})
47
+ };
43
48
  // @ts-ignore
44
49
  this.config = config;
45
50
  this.data = {
@@ -58,12 +63,12 @@ class DBI {
58
63
  this.events = new Events_1.Events(this);
59
64
  this.client = new discord_js_1.default.Client({
60
65
  ...(config.discord?.options || {}),
61
- ...(config.sharding ? {
66
+ ...(config.sharding == "hybrid" ? {
62
67
  shards: Sharding.data.SHARD_LIST,
63
68
  shardCount: Sharding.data.TOTAL_SHARDS
64
69
  } : {})
65
70
  });
66
- this.cluster = config.sharding ? new Sharding.Client(this.client) : undefined;
71
+ this.cluster = config.sharding == "hybrid" ? new Sharding.Client(this.client) : undefined;
67
72
  this._loaded = false;
68
73
  this._hooked = false;
69
74
  }
@@ -73,15 +78,15 @@ class DBI {
73
78
  this._hooked = true;
74
79
  this.data.unloaders.add((0, hookInteractionListeners_1.hookInteractionListeners)(this));
75
80
  this.data.unloaders.add((0, hookEventListeners_1.hookEventListeners)(this));
76
- if (typeof this.config.clearRefsAfter == "number") {
81
+ if (typeof this.config.references.autoClear != "undefined") {
77
82
  this.data.unloaders.add((() => {
78
83
  let interval = setInterval(() => {
79
- this.data.refs.forEach(({ at }, key) => {
80
- if (Date.now() > (at + this.config.clearRefsAfter)) {
84
+ this.data.refs.forEach(({ at, ttl }, key) => {
85
+ if (Date.now() > (at + (ttl || this.config.references.autoClear.ttl))) {
81
86
  this.data.refs.delete(key);
82
87
  }
83
88
  });
84
- }, 60000);
89
+ }, this.config.references.autoClear.check);
85
90
  return () => {
86
91
  clearInterval(interval);
87
92
  };
@@ -119,7 +124,7 @@ class DBI {
119
124
  });
120
125
  let Event = function (cfg) {
121
126
  let dbiEvent = new Event_1.DBIEvent(self, cfg);
122
- if (self.data.events.has(dbiEvent.id || dbiEvent.name))
127
+ if (self.config.strict && self.data.events.has(dbiEvent.id || dbiEvent.name))
123
128
  throw new Error(`DBIEvent "${dbiEvent.id || dbiEvent.name}" already loaded!`);
124
129
  self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);
125
130
  return dbiEvent;
@@ -129,7 +134,7 @@ class DBI {
129
134
  });
130
135
  let Button = function (cfg) {
131
136
  let dbiButton = new Button_1.DBIButton(self, cfg);
132
- if (self.data.interactions.has(dbiButton.name))
137
+ if (self.config.strict && self.data.interactions.has(dbiButton.name))
133
138
  throw new Error(`DBIButton "${dbiButton.name}" already loaded as "${self.data.interactions.get(dbiButton.name)?.type}"!`);
134
139
  self.data.interactions.set(dbiButton.name, dbiButton);
135
140
  return dbiButton;
@@ -139,7 +144,7 @@ class DBI {
139
144
  });
140
145
  let SelectMenu = function (cfg) {
141
146
  let dbiSelectMenu = new SelectMenu_1.DBISelectMenu(self, cfg);
142
- if (self.data.interactions.has(dbiSelectMenu.name))
147
+ if (self.config.strict && self.data.interactions.has(dbiSelectMenu.name))
143
148
  throw new Error(`DBISelectMenu "${dbiSelectMenu.name}" already loaded as "${self.data.interactions.get(dbiSelectMenu.name)?.type}"!`);
144
149
  self.data.interactions.set(dbiSelectMenu.name, dbiSelectMenu);
145
150
  return dbiSelectMenu;
@@ -149,7 +154,7 @@ class DBI {
149
154
  });
150
155
  let MessageContextMenu = function (cfg) {
151
156
  let dbiMessageContextMenu = new MessageContextMenu_1.DBIMessageContextMenu(self, cfg);
152
- if (self.data.interactions.has(dbiMessageContextMenu.name))
157
+ if (self.config.strict && self.data.interactions.has(dbiMessageContextMenu.name))
153
158
  throw new Error(`DBIMessageContextMenu "${dbiMessageContextMenu.name}" already loaded as "${self.data.interactions.get(dbiMessageContextMenu.name)?.type}"!`);
154
159
  self.data.interactions.set(dbiMessageContextMenu.name, dbiMessageContextMenu);
155
160
  return dbiMessageContextMenu;
@@ -159,7 +164,7 @@ class DBI {
159
164
  });
160
165
  let UserContextMenu = function (cfg) {
161
166
  let dbiUserContextMenu = new UserContextMenu_1.DBIUserContextMenu(self, cfg);
162
- if (self.data.interactions.has(dbiUserContextMenu.name))
167
+ if (self.config.strict && self.data.interactions.has(dbiUserContextMenu.name))
163
168
  throw new Error(`DBIUserContextMenu "${dbiUserContextMenu.name}" already loaded as "${self.data.interactions.get(dbiUserContextMenu.name)?.type}"!`);
164
169
  self.data.interactions.set(dbiUserContextMenu.name, dbiUserContextMenu);
165
170
  return dbiUserContextMenu;
@@ -169,7 +174,7 @@ class DBI {
169
174
  });
170
175
  let Modal = function (cfg) {
171
176
  let dbiModal = new Modal_1.DBIModal(self, cfg);
172
- if (self.data.interactions.has(dbiModal.name))
177
+ if (self.config.strict && self.data.interactions.has(dbiModal.name))
173
178
  throw new Error(`DBIModal "${dbiModal.name}" already loaded as "${self.data.interactions.get(dbiModal.name)?.type}"!`);
174
179
  self.data.interactions.set(dbiModal.name, dbiModal);
175
180
  return dbiModal;
@@ -179,7 +184,7 @@ class DBI {
179
184
  });
180
185
  let Locale = function (cfg) {
181
186
  let dbiLocale = new Locale_1.DBILocale(self, cfg);
182
- if (self.data.locales.has(dbiLocale.name))
187
+ if (self.config.strict && self.data.locales.has(dbiLocale.name))
183
188
  throw new Error(`DBILocale "${dbiLocale.name}" already loaded!`);
184
189
  self.data.locales.set(dbiLocale.name, dbiLocale);
185
190
  return dbiLocale;
@@ -189,7 +194,7 @@ class DBI {
189
194
  });
190
195
  let InteractionLocale = function (cfg) {
191
196
  let dbiInteractionLocale = new InteractionLocale_1.DBIInteractionLocale(self, cfg);
192
- if (self.data.interactionLocales.has(dbiInteractionLocale.name))
197
+ if (self.config.strict && self.data.interactionLocales.has(dbiInteractionLocale.name))
193
198
  throw new Error(`DBIInteractionLocale "${dbiInteractionLocale.name}" already loaded!`);
194
199
  self.data.interactionLocales.set(dbiInteractionLocale.name, dbiInteractionLocale);
195
200
  return dbiInteractionLocale;
@@ -214,6 +219,30 @@ class DBI {
214
219
  });
215
220
  }
216
221
  }
222
+ /**
223
+ * this.data.interactions.get(name)
224
+ */
225
+ interaction(name) {
226
+ return this.data.interactions.get(name);
227
+ }
228
+ /**
229
+ * this.data.events.get(name)
230
+ */
231
+ event(name) {
232
+ return this.data.events.get(name);
233
+ }
234
+ /**
235
+ * this.data.locales.get(name)
236
+ */
237
+ locale(name) {
238
+ return this.data.locales.get(name);
239
+ }
240
+ /**
241
+ * this.data.plugins.get(name)
242
+ */
243
+ plugin(name) {
244
+ return this.data.plugins.get(name);
245
+ }
217
246
  /**
218
247
  * Shorthands for modifying `dbi.data.other`
219
248
  */
@@ -243,7 +272,7 @@ class DBI {
243
272
  return lodash_1.default.unset(this.data.other, k);
244
273
  }
245
274
  async login() {
246
- await this.client.login(this.config.discord.token);
275
+ await this.client.login(this.config.sharding == "default" ? undefined : this.config.discord.token);
247
276
  }
248
277
  async register(cb) {
249
278
  this.data.registers.add(cb);
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, LangConstructorObject, 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 clearRefsAfter?: number;\r\n}\r\n\r\nexport interface DBIConfigConstructor {\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 clearRefsAfter?: number;\r\n}\r\n\r\nexport interface DBIRegisterAPI<TLocaleFormat> {\r\n ChatInput(cfg: TDBIChatInputOmitted): DBIChatInput;\r\n ChatInputOptions: typeof DBIChatInputOptions;\r\n Event(cfg: TDBIEventOmitted): DBIEvent;\r\n Locale(cfg: TDBILocaleConstructor<TLocaleFormat>): 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>, TLocaleFormat = LangConstructorObject> {\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<TLocaleFormat>>;\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 private _hooked: boolean;\r\n constructor(namespace: string, config: DBIConfigConstructor) {\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 as any);\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._loaded = false;\r\n this._hooked = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n if (this._hooked) return;\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.clearRefsAfter == \"number\") {\r\n this.data.unloaders.add((() => {\r\n let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at }, key) => {\r\n if (Date.now() > (at + this.config.clearRefsAfter)) {\r\n this.data.refs.delete(key);\r\n }\r\n });\r\n }, 60000);\r\n return () => {\r\n clearInterval(interval);\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 }\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 as any;\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.id || dbiEvent.name)) throw new Error(`DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`);\r\n self.data.events.set(dbiEvent.id || 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<TLocaleFormat>) {\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 (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 this.client.login(this.config.discord.token);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI<TLocaleFormat>) => 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 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(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}"]}
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: \"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 strict: boolean;\r\n}\r\n\r\nexport interface DBIConfigConstructor {\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?: \"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 strict?: boolean;\r\n}\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 type TDBIInteractions = DBIChatInput | DBIButton | DBISelectMenu | DBIMessageContextMenu | DBIUserContextMenu | DBIModal;\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, TDBIInteractions>;\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, ttl?: number }>;\r\n };\r\n events: Events;\r\n cluster?: Sharding.Client;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: string, config: DBIConfigConstructor) {\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 ?? \"off\";\r\n config.strict = config.strict ?? true;\r\n config.references = {\r\n autoClear: undefined,\r\n ...(config.references || {})\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 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 as any);\r\n this.client = new Discord.Client({\r\n ...(config.discord?.options || {}) as any,\r\n ...(config.sharding == \"hybrid\" ? {\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 == \"hybrid\" ? new Sharding.Client(this.client) : 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 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 let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at, ttl }, key) => {\r\n if (Date.now() > (at + (ttl || this.config.references.autoClear.ttl))) {\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\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 }\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.config.strict && self.data.events.has(dbiEvent.id || dbiEvent.name)) throw new Error(`DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`);\r\n self.data.events.set(dbiEvent.id || 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.config.strict && 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.config.strict && 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.config.strict && 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.config.strict && 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.config.strict && 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.config.strict && 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.config.strict && 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 * this.data.interactions.get(name)\r\n */\r\n interaction(name: string): TDBIInteractions {\r\n return this.data.interactions.get(name);\r\n }\r\n\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event(name: string): DBIEvent {\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(name: string): DBILocale {\r\n return this.data.locales.get(name);\r\n }\r\n\r\n /**\r\n * this.data.plugins.get(name)\r\n */\r\n plugin(name: string): any {\r\n return this.data.plugins.get(name);\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 (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 this.client.login(this.config.sharding == \"default\" ? undefined : 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 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(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,6 +1,5 @@
1
1
  import { DBI, DBIConfigConstructor } from "./DBI";
2
- import { LangConstructorObject } from "./types/Locale";
3
2
  export { recursiveImport } from "./utils/recursiveImport";
4
3
  export { MemoryStore } from "./utils/MemoryStore";
5
- export declare function createDBI<TOtherType = Record<string, any>, TDataFormat = LangConstructorObject>(namespace: string, cfg: DBIConfigConstructor): DBI<TOtherType, TDataFormat>;
4
+ export declare function createDBI<TOtherType = Record<string, any>>(namespace: string, cfg: DBIConfigConstructor): DBI<TOtherType>;
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,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,WAAW,GAAG,qBAAqB,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAE3K"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAClD,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,oBAAoB,GAAG,GAAG,CAAC,UAAU,CAAC,CAEzH"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAElD,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,SAAgB,SAAS,CAAwE,SAAiB,EAAE,GAAyB;IAC3I,OAAO,IAAI,SAAG,CAA0B,SAAS,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAFD,8BAEC","sourcesContent":["import { DBI, DBIConfigConstructor } from \"./DBI\";\r\nimport { LangConstructorObject } from \"./types/Locale\";\r\nexport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nexport function createDBI<TOtherType = Record<string, any>, TDataFormat = LangConstructorObject>(namespace: string, cfg: DBIConfigConstructor): DBI<TOtherType, TDataFormat> {\r\n return new DBI<TOtherType, TDataFormat>(namespace, cfg);\r\n}"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAAkD;AAClD,2DAA0D;AAAjD,kHAAA,eAAe,OAAA;AACxB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,SAAgB,SAAS,CAAmC,SAAiB,EAAE,GAAyB;IACtG,OAAO,IAAI,SAAG,CAAa,SAAS,EAAE,GAAG,CAAC,CAAC;AAC7C,CAAC;AAFD,8BAEC","sourcesContent":["import { DBI, DBIConfigConstructor } 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: DBIConfigConstructor): DBI<TOtherType> {\r\n return new DBI<TOtherType>(namespace, cfg);\r\n}"]}
@@ -10,6 +10,7 @@ export declare class DBIButton extends DBIBaseInteraction {
10
10
  constructor(dbi: DBI, args: TDBIButtonOmitted);
11
11
  options?: Omit<Discord.ButtonComponentData, "customId" | "type"> | ((data: (number | string | any)[]) => Omit<Discord.ButtonComponentData, "customId" | "type">);
12
12
  onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any;
13
+ referenceTTL?: number;
13
14
  toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData;
14
15
  }
15
16
  //# sourceMappingURL=Button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAE3F,qBAAa,SAAU,SAAQ,kBAAkB;gBACnC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB;IAOrC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;IAEhK,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEjE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB;CAOjF"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG3F,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAE3F,qBAAa,SAAU,SAAQ,kBAAkB;gBACnC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB;IAQrC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC;IAEhK,SAAS,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IACzD,YAAY,CAAC,EAAE,MAAM,CAAA;IAC7B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,mBAAmB;CAOjF"}
@@ -11,13 +11,14 @@ class DBIButton extends Interaction_1.DBIBaseInteraction {
11
11
  ...args,
12
12
  type: "Button",
13
13
  });
14
+ this.referenceTTL = args.referenceTTL;
14
15
  }
15
16
  onExecute(ctx) { }
16
17
  ;
17
18
  toJSON(...customData) {
18
19
  return {
19
20
  ...(typeof this.options == "function" ? this.options(customData) : this.options),
20
- customId: (0, customId_1.customIdBuilder)(this.dbi, this.name, customData),
21
+ customId: (0, customId_1.customIdBuilder)(this.dbi, this.name, customData, this.referenceTTL),
21
22
  type: discord_js_1.default.ComponentType.Button
22
23
  };
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,SAAU,SAAQ,gCAAkB;IAC/C,YAAY,GAAQ,EAAE,IAAuB;QAC3C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;IACL,CAAC;IAIQ,SAAS,CAAC,GAAyB,IAAwB,CAAC;IAAA,CAAC;IAEtE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAChF,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;YAC1D,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,MAAM;SAC5B,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAnBD,8BAmBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<\"cached\">;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIButtonOmitted = Omit<DBIButton, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIButton extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBIButtonOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"Button\",\r\n });\r\n }\r\n\r\n declare options?: Omit<Discord.ButtonComponentData, \"customId\" | \"type\"> | ((data: (number | string | any)[]) => Omit<Discord.ButtonComponentData, \"customId\" | \"type\">);\r\n\r\n override onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData {\r\n return {\r\n ...(typeof this.options == \"function\" ? this.options(customData) : this.options),\r\n customId: customIdBuilder(this.dbi, this.name, customData),\r\n type: Discord.ComponentType.Button\r\n } as any;\r\n };\r\n}"]}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/types/Button.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AAEjC,+CAA2F;AAC3F,gDAAoD;AASpD,MAAa,SAAU,SAAQ,gCAAkB;IAC/C,YAAY,GAAQ,EAAE,IAAuB;QAC3C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAIQ,SAAS,CAAC,GAAyB,IAAwB,CAAC;IAAA,CAAC;IAEtE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAChF,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;YAC7E,IAAI,EAAE,oBAAO,CAAC,aAAa,CAAC,MAAM;SAC5B,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AApBD,8BAoBC","sourcesContent":["import Discord from \"discord.js\";\r\nimport { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIButtonExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ButtonInteraction<\"cached\">;\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIButtonOmitted = Omit<DBIButton, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIButton extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBIButtonOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"Button\",\r\n });\r\n this.referenceTTL = args.referenceTTL;\r\n }\r\n\r\n declare options?: Omit<Discord.ButtonComponentData, \"customId\" | \"type\"> | ((data: (number | string | any)[]) => Omit<Discord.ButtonComponentData, \"customId\" | \"type\">);\r\n\r\n override onExecute(ctx: IDBIButtonExecuteCtx): Promise<any> | any { };\r\n declare referenceTTL?: number\r\n toJSON(...customData: (string | number | object)[]): Discord.ButtonComponentData {\r\n return {\r\n ...(typeof this.options == \"function\" ? this.options(customData) : this.options),\r\n customId: customIdBuilder(this.dbi, this.name, customData, this.referenceTTL),\r\n type: Discord.ComponentType.Button\r\n } as any;\r\n };\r\n}"]}
@@ -1,20 +1,20 @@
1
1
  import { DBI } from "../DBI";
2
- export interface LangObject {
3
- [property: string]: LangObject & ((...args: any[]) => string);
2
+ export interface DBILangObject {
3
+ [property: string]: DBILangObject & ((...args: any[]) => string);
4
4
  }
5
- export interface LangConstructorObject {
6
- [property: string]: LangConstructorObject | string;
5
+ export interface DBILangConstructorObject {
6
+ [property: string]: DBILangConstructorObject | string;
7
7
  }
8
8
  export declare type TDBILocaleString = "en" | "bg" | "zh" | "hr" | "cs" | "da" | "nl" | "fi" | "fr" | "de" | "el" | "hi" | "hu" | "it" | "ja" | "ko" | "no" | "pl" | "pt" | "ro" | "ru" | "es" | "sv" | "th" | "tr" | "uk" | "vi";
9
- export declare type TDBILocaleConstructor<TDataFormat> = Omit<DBILocale, "data" | "dbi"> & {
10
- data: TDataFormat;
9
+ export declare type TDBILocaleConstructor = Omit<DBILocale, "data" | "dbi"> & {
10
+ data: DBILangConstructorObject;
11
11
  };
12
- export declare class DBILocale<TDataFormat = LangConstructorObject> {
12
+ export declare class DBILocale {
13
13
  name: TDBILocaleString;
14
- data: LangObject;
14
+ data: DBILangObject;
15
15
  private _data;
16
16
  dbi: DBI;
17
- constructor(dbi: DBI, cfg: TDBILocaleConstructor<TDataFormat>);
17
+ constructor(dbi: DBI, cfg: TDBILocaleConstructor);
18
18
  }
19
- export declare function convertLang(data: LangConstructorObject): LangObject;
19
+ export declare function convertLang(data: DBILangConstructorObject): DBILangObject;
20
20
  //# sourceMappingURL=Locale.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../src/types/Locale.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,GAAG,MAAM,CAAC;CACpD;AAED,oBAAY,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1N,oBAAY,qBAAqB,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEzG,qBAAa,SAAS,CAAC,WAAW,GAAG,qBAAqB;IACxD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,KAAK,CAAc;IAC3B,GAAG,EAAE,GAAG,CAAC;gBACG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,WAAW,CAAC;CAM9D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,qBAAqB,GAAG,UAAU,CAUnE"}
1
+ {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../src/types/Locale.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC;CACvD;AAED,oBAAY,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1N,oBAAY,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEzG,qBAAa,SAAS;IACpB,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;gBACG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,qBAAqB;CAMjD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,wBAAwB,GAAG,aAAa,CAUzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../src/types/Locale.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,uDAAiC;AAejC,MAAa,SAAS;IACpB,IAAI,CAAmB;IACvB,IAAI,CAAa;IACT,KAAK,CAAc;IAC3B,GAAG,CAAM;IACT,YAAY,GAAQ,EAAE,GAAuC;QAC3D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;IAC3C,CAAC;CACF;AAXD,8BAWC;AAED,SAAgB,WAAW,CAAC,IAA2B;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;oBAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxF,CAAC,CAAC,CAAA;SACH;aAAM;YACL,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC,CAAA;AACL,CAAC;AAVD,kCAUC","sourcesContent":["// @ts-ignore\r\nimport * as stuffs from \"stuffs\";\r\nimport { DBI } from \"../DBI\";\r\n\r\nexport interface LangObject {\r\n [property: string]: LangObject & ((...args: any[]) => string);\r\n}\r\n\r\nexport interface LangConstructorObject {\r\n [property: string]: LangConstructorObject | string;\r\n}\r\n\r\nexport type TDBILocaleString = \"en\" | \"bg\" | \"zh\" | \"hr\" | \"cs\" | \"da\" | \"nl\" | \"fi\" | \"fr\" | \"de\" | \"el\" | \"hi\" | \"hu\" | \"it\" | \"ja\" | \"ko\" | \"no\" | \"pl\" | \"pt\" | \"ro\" | \"ru\" | \"es\" | \"sv\" | \"th\" | \"tr\" | \"uk\" | \"vi\";\r\n\r\nexport type TDBILocaleConstructor<TDataFormat> = Omit<DBILocale, \"data\" | \"dbi\"> & { data: TDataFormat };\r\n\r\nexport class DBILocale<TDataFormat = LangConstructorObject> {\r\n name: TDBILocaleString;\r\n data: LangObject;\r\n private _data: TDataFormat;\r\n dbi: DBI;\r\n constructor(dbi: DBI, cfg: TDBILocaleConstructor<TDataFormat>) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this._data = cfg.data;\r\n this.data = convertLang(cfg.data as any);\r\n }\r\n}\r\n\r\nexport function convertLang(data: LangConstructorObject): LangObject {\r\n return Object.fromEntries(Object.entries(data).map(([key, value]) => {\r\n if (typeof value === \"string\") {\r\n return [key, (...args: any[]) => {\r\n return stuffs.mapReplace(value, Object.fromEntries(args.map((t, i) => [`{${i}}`, t])))\r\n }]\r\n } else {\r\n return [key, convertLang(value)];\r\n }\r\n }))\r\n}\r\n"]}
1
+ {"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../src/types/Locale.ts"],"names":[],"mappings":";;;;AAAA,aAAa;AACb,uDAAiC;AAejC,MAAa,SAAS;IACpB,IAAI,CAAmB;IACvB,IAAI,CAAgB;IACZ,KAAK,CAAC;IACd,GAAG,CAAM;IACT,YAAY,GAAQ,EAAE,GAA0B;QAC9C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;IAC3C,CAAC;CACF;AAXD,8BAWC;AAED,SAAgB,WAAW,CAAC,IAA8B;IACxD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;oBAC9B,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxF,CAAC,CAAC,CAAA;SACH;aAAM;YACL,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC,CAAA;AACL,CAAC;AAVD,kCAUC","sourcesContent":["// @ts-ignore\r\nimport * as stuffs from \"stuffs\";\r\nimport { DBI } from \"../DBI\";\r\n\r\nexport interface DBILangObject {\r\n [property: string]: DBILangObject & ((...args: any[]) => string);\r\n}\r\n\r\nexport interface DBILangConstructorObject {\r\n [property: string]: DBILangConstructorObject | string;\r\n}\r\n\r\nexport type TDBILocaleString = \"en\" | \"bg\" | \"zh\" | \"hr\" | \"cs\" | \"da\" | \"nl\" | \"fi\" | \"fr\" | \"de\" | \"el\" | \"hi\" | \"hu\" | \"it\" | \"ja\" | \"ko\" | \"no\" | \"pl\" | \"pt\" | \"ro\" | \"ru\" | \"es\" | \"sv\" | \"th\" | \"tr\" | \"uk\" | \"vi\";\r\n\r\nexport type TDBILocaleConstructor = Omit<DBILocale, \"data\" | \"dbi\"> & { data: DBILangConstructorObject };\r\n\r\nexport class DBILocale {\r\n name: TDBILocaleString;\r\n data: DBILangObject;\r\n private _data;\r\n dbi: DBI;\r\n constructor(dbi: DBI, cfg: TDBILocaleConstructor) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this._data = cfg.data;\r\n this.data = convertLang(cfg.data as any);\r\n }\r\n}\r\n\r\nexport function convertLang(data: DBILangConstructorObject): DBILangObject {\r\n return Object.fromEntries(Object.entries(data).map(([key, value]) => {\r\n if (typeof value === \"string\") {\r\n return [key, (...args: any[]) => {\r\n return stuffs.mapReplace(value, Object.fromEntries(args.map((t, i) => [`{${i}}`, t])))\r\n }]\r\n } else {\r\n return [key, convertLang(value)];\r\n }\r\n }))\r\n}\r\n"]}
@@ -7,9 +7,10 @@ export interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {
7
7
  }
8
8
  export declare type TDBIModalOmitted = Omit<DBIModal, "type" | "description" | "dbi" | "toJSON">;
9
9
  export declare class DBIModal extends DBIBaseInteraction {
10
- constructor(dbi: DBI, cfg: TDBIModalOmitted);
10
+ constructor(dbi: DBI, args: TDBIModalOmitted);
11
11
  options: Omit<Discord.ModalComponentData, "customId"> | ((data: (number | string | any)[]) => Omit<Discord.ModalComponentData, "customId">);
12
12
  onExecute(ctx: IDBIModalExecuteCtx): Promise<any> | any;
13
+ referenceTTL?: number;
13
14
  toJSON(...customData: (string | number | object)[]): Discord.ModalComponentData;
14
15
  }
15
16
  //# sourceMappingURL=Modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAEzF,qBAAa,QAAS,SAAQ,kBAAkB;gBAClC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,gBAAgB;IAOnC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3I,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAEhE,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,kBAAkB;CAMhF"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,MAAM,WAAW,mBAAoB,SAAQ,kBAAkB;IAC7D,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAEtD,IAAI,EAAE,kBAAkB,EAAE,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;AAEzF,qBAAa,QAAS,SAAQ,kBAAkB;gBAClC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,gBAAgB;IAQpC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3I,SAAS,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG;IAExD,YAAY,CAAC,EAAE,MAAM,CAAC;IAE9B,MAAM,CAAC,GAAG,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,kBAAkB;CAMhF"}
@@ -4,18 +4,19 @@ exports.DBIModal = void 0;
4
4
  const Interaction_1 = require("./Interaction");
5
5
  const customId_1 = require("../utils/customId");
6
6
  class DBIModal extends Interaction_1.DBIBaseInteraction {
7
- constructor(dbi, cfg) {
7
+ constructor(dbi, args) {
8
8
  super(dbi, {
9
- ...cfg,
9
+ ...args,
10
10
  type: "Modal"
11
11
  });
12
+ this.referenceTTL = args.referenceTTL;
12
13
  }
13
14
  onExecute(ctx) { }
14
15
  ;
15
16
  toJSON(...customData) {
16
17
  return {
17
18
  ...(typeof this.options == "function" ? this.options(customData) : this.options),
18
- customId: (0, customId_1.customIdBuilder)(this.dbi, this.name, customData)
19
+ customId: (0, customId_1.customIdBuilder)(this.dbi, this.name, customData, this.referenceTTL)
19
20
  };
20
21
  }
21
22
  ;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":";;;AACA,+CAA2F;AAE3F,gDAAoD;AAUpD,MAAa,QAAS,SAAQ,gCAAkB;IAC9C,YAAY,GAAQ,EAAE,GAAqB;QACzC,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,GAAW;YACf,IAAI,EAAE,OAAO;SACd,CAAC,CAAA;IACJ,CAAC;IAIQ,SAAS,CAAC,GAAwB,IAAwB,CAAC;IAAA,CAAC;IAErE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAChF,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC;SACpD,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AAlBD,4BAkBC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ModalSubmitInteraction<\"cached\">;\r\n\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIModalOmitted = Omit<DBIModal, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIModal extends DBIBaseInteraction {\r\n constructor(dbi: DBI, cfg: TDBIModalOmitted) {\r\n super(dbi, {\r\n ...(cfg as any),\r\n type: \"Modal\"\r\n })\r\n }\r\n\r\n declare options: Omit<Discord.ModalComponentData, \"customId\"> | ((data: (number | string | any)[]) => Omit<Discord.ModalComponentData, \"customId\">);\r\n\r\n override onExecute(ctx: IDBIModalExecuteCtx): Promise<any> | any { };\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ModalComponentData {\r\n return {\r\n ...(typeof this.options == \"function\" ? this.options(customData) : this.options),\r\n customId: customIdBuilder(this.dbi, this.name, customData)\r\n } as any;\r\n };\r\n}"]}
1
+ {"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/types/Modal.ts"],"names":[],"mappings":";;;AACA,+CAA2F;AAE3F,gDAAoD;AAUpD,MAAa,QAAS,SAAQ,gCAAkB;IAC9C,YAAY,GAAQ,EAAE,IAAsB;QAC1C,KAAK,CAAC,GAAG,EAAE;YACT,GAAI,IAAY;YAChB,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IACxC,CAAC;IAIQ,SAAS,CAAC,GAAwB,IAAwB,CAAC;IAAA,CAAC;IAIrE,MAAM,CAAC,GAAG,UAAwC;QAChD,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAChF,QAAQ,EAAE,IAAA,0BAAe,EAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;SACvE,CAAC;IACX,CAAC;IAAA,CAAC;CACH;AArBD,4BAqBC","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport { DBIBaseInteraction, IDBIBaseExecuteCtx, TDBIReferencedData } from \"./Interaction\";\r\nimport Discord from \"discord.js\";\r\nimport { customIdBuilder } from \"../utils/customId\";\r\n\r\nexport interface IDBIModalExecuteCtx extends IDBIBaseExecuteCtx {\r\n interaction: Discord.ModalSubmitInteraction<\"cached\">;\r\n\r\n data: TDBIReferencedData[];\r\n}\r\n\r\nexport type TDBIModalOmitted = Omit<DBIModal, \"type\" | \"description\" | \"dbi\" | \"toJSON\">;\r\n\r\nexport class DBIModal extends DBIBaseInteraction {\r\n constructor(dbi: DBI, args: TDBIModalOmitted) {\r\n super(dbi, {\r\n ...(args as any),\r\n type: \"Modal\"\r\n });\r\n this.referenceTTL = args.referenceTTL;\r\n }\r\n\r\n declare options: Omit<Discord.ModalComponentData, \"customId\"> | ((data: (number | string | any)[]) => Omit<Discord.ModalComponentData, \"customId\">);\r\n\r\n override onExecute(ctx: IDBIModalExecuteCtx): Promise<any> | any { };\r\n\r\n declare referenceTTL?: number;\r\n\r\n toJSON(...customData: (string | number | object)[]): Discord.ModalComponentData {\r\n return {\r\n ...(typeof this.options == \"function\" ? this.options(customData) : this.options),\r\n customId: customIdBuilder(this.dbi, this.name, customData, this.referenceTTL)\r\n } as any;\r\n };\r\n}"]}