@mostfeatured/dbi 0.0.60 → 0.0.63

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.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 { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport { 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\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBICustomEvent, TDBICustomEventOmitted } from \"./types/CustomEvent\";\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<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n SelectMenu(cfg: TDBISelectMenuOmitted<TNamespace>): DBISelectMenu<TNamespace>;\r\n MessageContextMenu(cfg: TDBIMessageContextMenuOmitted<TNamespace>): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(cfg: TDBIUserContextMenuOmitted<TNamespace>): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(cfg: TDBICustomEventOmitted<TNamespace, T>): DBICustomEvent<TNamespace, T>;\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string, any>> {\r\n namespace: TNamespace;\r\n config: DBIConfig;\r\n client: Discord.Client<true>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number, value: any, ttl?: number }>;\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.Client;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor) {\r\n this.namespace = namespace as any;\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 locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: {} as TOtherData,\r\n eventMap,\r\n customEventNames: new Set(),\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.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll() {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name)) 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<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, 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<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiSelectMenu = new DBISelectMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (self.config.strict && self.data.interactionLocales.has(dbiLocale.name)) throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name)) dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\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 CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name]) throw new Error(`DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`);\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(CustomEvent, class { constructor(...args: any[]) { return CustomEvent.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,\r\n Locale,\r\n Button,\r\n SelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\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<TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]>(name: TInteractionName): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n emit<TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)>(name: TEventName, args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName] ): void {\r\n this.client.emit(name as any, { ...args, _DIRECT_: true } as any);\r\n }\r\n\r\n/**\r\n * \r\n * ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K] as const)\r\n * typeof ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K])[keyof typeof ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K])]\r\n */\r\n\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(name: TEventName): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(name: TLocaleName): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(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<TNamespace>) => 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 { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport { 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\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBICustomEvent, TDBICustomEventOmitted } from \"./types/CustomEvent\";\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 data?: {\r\n other?: Record<string, any>;\r\n refs?: Map<string, { at: number, value: any, ttl?: number }>;\r\n }\r\n\r\n strict?: boolean;\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n SelectMenu(cfg: TDBISelectMenuOmitted<TNamespace>): DBISelectMenu<TNamespace>;\r\n MessageContextMenu(cfg: TDBIMessageContextMenuOmitted<TNamespace>): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(cfg: TDBIUserContextMenuOmitted<TNamespace>): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(cfg: TDBICustomEventOmitted<TNamespace, T>): DBICustomEvent<TNamespace, T>;\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string, any>> {\r\n namespace: TNamespace;\r\n config: DBIConfig;\r\n client: Discord.Client<true>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number, value: any, ttl?: number }>;\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.Client;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor) {\r\n this.namespace = namespace as any;\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 locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap,\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map()\r\n }\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.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll() {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name)) 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<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, 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<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiSelectMenu = new DBISelectMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, 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 as any);\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<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (self.config.strict && self.data.interactionLocales.has(dbiLocale.name)) throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name)) dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\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 CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name]) throw new Error(`DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`);\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(CustomEvent, class { constructor(...args: any[]) { return CustomEvent.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,\r\n Locale,\r\n Button,\r\n SelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\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<TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]>(name: TInteractionName): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n emit<TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)>(name: TEventName, args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName] ): void {\r\n this.client.emit(name as any, { ...args, _DIRECT_: true } as any);\r\n }\r\n\r\n/**\r\n * \r\n * ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K] as const)\r\n * typeof ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K])[keyof typeof ((NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[K])]\r\n */\r\n\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(name: TEventName): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(name: TLocaleName): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(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<TNamespace>) => 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}"]}
@@ -5,7 +5,7 @@ const customId_1 = require("../utils/customId");
5
5
  function hookInteractionListeners(dbi) {
6
6
  async function handle(inter) {
7
7
  const dbiInter = dbi.data.interactions.find(i => {
8
- let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());
8
+ let isUsesCustomId = (inter.isButton() || inter.isStringSelectMenu() || inter.isModalSubmit());
9
9
  let parsedId = isUsesCustomId ? (0, customId_1.parseCustomId)(dbi, inter.customId) : null;
10
10
  return ((i.type == "ChatInput"
11
11
  && (inter.isChatInputCommand() || inter.isAutocomplete())
@@ -29,7 +29,7 @@ function hookInteractionListeners(dbi) {
29
29
  user: userLocale,
30
30
  guild: guildLocale
31
31
  };
32
- let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? (0, customId_1.parseCustomId)(dbi, inter.customId).data : undefined;
32
+ let data = (inter.isButton() || inter.isStringSelectMenu() || inter.isModalSubmit()) ? (0, customId_1.parseCustomId)(dbi, inter.customId).data : undefined;
33
33
  let other = {};
34
34
  if (!(await dbi.events.trigger("beforeInteraction", { dbi, interaction: inter, locale, setRateLimit, data, other, dbiInteraction: dbiInter })))
35
35
  return;
@@ -1 +1 @@
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\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n async function handle(inter: Discord.Interaction<\"cached\">) {\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 let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(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 other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other, dbiInteraction: 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 dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${dbiInter.name}_${inter.user.id}`,\r\n \"Channel\": `${dbiInter.name}_${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${dbiInter.name}_${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${dbiInter.name}_${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${dbiInter.name}_${(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 dbiInteraction: dbiInter,\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 arg = {\r\n // @ts-ignore\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n dbiInteraction: dbiInter,\r\n // @ts-ignore\r\n locale,\r\n // @ts-ignore\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n // @ts-ignore\r\n other\r\n };\r\n\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } catch (error) {\r\n // @ts-ignore\r\n await dbi.events.trigger(\"interactionError\", Object.assign(arg, { error }));\r\n }\r\n }\r\n \r\n // @ts-ignore\r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, dbiInteraction: dbiInter, 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
+ {"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\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n async function handle(inter: Discord.Interaction<\"cached\">) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isStringSelectMenu() || 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 let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(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.isStringSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other, dbiInteraction: 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 dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${dbiInter.name}_${inter.user.id}`,\r\n \"Channel\": `${dbiInter.name}_${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${dbiInter.name}_${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${dbiInter.name}_${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${dbiInter.name}_${(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 dbiInteraction: dbiInter,\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 arg = {\r\n // @ts-ignore\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n dbiInteraction: dbiInter,\r\n // @ts-ignore\r\n locale,\r\n // @ts-ignore\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n // @ts-ignore\r\n other\r\n };\r\n\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } catch (error) {\r\n // @ts-ignore\r\n await dbi.events.trigger(\"interactionError\", Object.assign(arg, { error }));\r\n }\r\n }\r\n \r\n // @ts-ignore\r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, dbiInteraction: dbiInter, 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 +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;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,EACtE,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACrE,WAAW,EAAE,OAAO,GAAG,QAAQ,EAC/B,OAAO,CAAC,EAAE,MAAM,iBAuKjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,EAAE,CAcvE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,CAgD9D"}
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;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAK/D,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,CAAC,EACtE,mBAAmB,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,oBAAoB,CAAC,EACrE,WAAW,EAAE,OAAO,GAAG,QAAQ,EAC/B,OAAO,CAAC,EAAE,MAAM,iBAqKjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,GAAG,GAAG,GAAG,EAAE,CAcvE;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,oBAAoB,GAAG,GAAG,CAgD9D"}