@mostfeatured/dbi 0.0.97 → 0.0.99

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 CHANGED
@@ -349,7 +349,7 @@ class DBI {
349
349
  },
350
350
  });
351
351
  }
352
- self.data.interactions.sort((a, b) => b.name.length - a.name.length);
352
+ self.data.interactions.sort((a, b) => a.name.length - b.name.length);
353
353
  }
354
354
  emit(name, args) {
355
355
  this.data.clients.forEach((d) => d.client.emit(name, { ...args, _DIRECT_: true }));
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/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport { DBIStringSelectMenu, TDBIStringSelectMenuOmitted } from \"./types/Components/StringSelectMenu\";\r\nimport { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from \"./types/other/MessageContextMenu\";\r\nimport { DBIUserContextMenu, TDBIUserContextMenuOmitted } from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport { DBIInteractionLocale, TDBIInteractionLocaleOmitted } from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBICustomEvent, TDBICustomEventOmitted } from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport { DBIUserSelectMenu, TDBIUserSelectMenuOmitted } from \"./types/Components/UserSelectMenu\";\r\nimport { DBIMentionableSelectMenu, TDBIMentionableSelectMenuOmitted } from \"./types/Components/MentionableSelectMenu\";\r\nimport { DBIChannelSelectMenu, TDBIChannelSelectMenuOmitted } from \"./types/Components/ChannelSelectMenu\";\r\nimport { DBIRoleSelectMenu, TDBIRoleSelectMenuOmitted } from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type DBIClientData<TNamespace extends NamespaceEnums> = { namespace: NamespaceData[TNamespace][\"clientNamespaces\"], token: string, options: Discord.ClientOptions, client: Discord.Client<true> };\r\n\r\nexport interface DBIConfig {\r\n discord: {\r\n namespace: string,\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 messageCommands?: {\r\n prefixes: string[];\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n }\r\n }\r\n}\r\n\r\nexport interface DBIConfigConstructor {\r\n discord: {\r\n token: string;\r\n options: Discord.ClientOptions\r\n } | {\r\n namespace: string,\r\n token: string,\r\n options: Discord.ClientOptions,\r\n }[];\r\n\r\n defaults?: {\r\n locale?: 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 messageCommands?: {\r\n prefixes: string[];\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n }\r\n }\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(cfg: TDBIStringSelectMenuOmitted<TNamespace>): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(cfg: TDBIUserSelectMenuOmitted<TNamespace>): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(cfg: TDBIRoleSelectMenuOmitted<TNamespace>): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(cfg: TDBIChannelSelectMenuOmitted<TNamespace>): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(cfg: TDBIMentionableSelectMenuOmitted<TNamespace>): DBIMentionableSelectMenu<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 data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number, value: any, ttl?: number }>;\r\n clients:\r\n & DBIClientData<TNamespace>[]\r\n & {\r\n next(key?: string): DBIClientData<TNamespace>,\r\n random(): DBIClientData<TNamespace>,\r\n random(size: number): DBIClientData<TNamespace>[],\r\n first(): DBIClientData<TNamespace>,\r\n get(namespace: NamespaceData[TNamespace][\"clientNamespaces\"]): DBIClientData<TNamespace>,\r\n indexes: Record<string, number>\r\n }\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = config.store as any || new MemoryStore();\r\n config.defaults = {\r\n locale: \"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 if (config.messageCommands) {\r\n if (config.strict && !config.messageCommands?.prefixes?.length) throw new Error(\"No message command prefixes provided.\");\r\n\r\n let { typeAliases } = config.messageCommands;\r\n\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n \"true\": true,\r\n \"false\": false,\r\n \"yes\": true,\r\n \"no\": false,\r\n \"y\": true,\r\n \"n\": false,\r\n \"1\": true,\r\n \"0\": false\r\n }\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = (((this.indexes[key] ?? -1) + 1) % this.length);\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {}\r\n }) as any\r\n }\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord) ?\r\n config.discord :\r\n [{ token: config.discord.token, options: config.discord.options, namespace: \"default\" }];\r\n\r\n this.data.clients.push(...(\r\n config.discord as any\r\n ));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...(clientContext.options || {}) as any,\r\n ...(config.sharding == \"hybrid\" ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS\r\n } : {})\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (this.data.clients.length !== 1 && !(config.sharding && config.sharding === \"off\"))\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster = config.sharding == \"hybrid\" ? new Sharding.ClusterClient(this.data.clients[0].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 const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add((() => {\r\n 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 if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add((() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n }\r\n })());\r\n }\r\n }\r\n\r\n 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 StringSelectMenu = function (cfg: TDBIStringSelectMenuOmitted<TNamespace>) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiStringSelectMenu.name)) throw new Error(`DBIStringSelectMenu \"${dbiStringSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiStringSelectMenu.name, dbiStringSelectMenu as any);\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(StringSelectMenu, class { constructor(...args: any[]) { return StringSelectMenu.apply(this, args as any); } });\r\n\r\n let UserSelectMenu = function (cfg: TDBIUserSelectMenuOmitted<TNamespace>) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiUserSelectMenu.name)) throw new Error(`DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiUserSelectMenu.name, dbiUserSelectMenu as any);\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(UserSelectMenu, class { constructor(...args: any[]) { return UserSelectMenu.apply(this, args as any); } });\r\n\r\n let RoleSelectMenu = function (cfg: TDBIRoleSelectMenuOmitted<TNamespace>) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiRoleSelectMenu.name)) throw new Error(`DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiRoleSelectMenu.name, dbiRoleSelectMenu as any);\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(RoleSelectMenu, class { constructor(...args: any[]) { return RoleSelectMenu.apply(this, args as any); } });\r\n\r\n let ChannelSelectMenu = function (cfg: TDBIChannelSelectMenuOmitted<TNamespace>) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiChannelSelectMenu.name)) throw new Error(`DBIChannelSelectMenu \"${dbiChannelSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiChannelSelectMenu.name, dbiChannelSelectMenu as any);\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(ChannelSelectMenu, class { constructor(...args: any[]) { return ChannelSelectMenu.apply(this, args as any); } });\r\n\r\n let MentionableSelectMenu = function (cfg: TDBIMentionableSelectMenuOmitted<TNamespace>) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiMentionableSelectMenu.name)) throw new Error(`DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiMentionableSelectMenu.name, dbiMentionableSelectMenu as any);\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(MentionableSelectMenu, class { constructor(...args: any[]) { return MentionableSelectMenu.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 StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\r\n }\r\n\r\n emit<TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)>(name: TEventName, args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]): void {\r\n this.data.clients.forEach((d) => d.client.emit(name as any, { ...args, _DIRECT_: true } as any));\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 client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(name?: TClientName): DBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(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 aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(this.config.sharding == \"default\" ? null : clientContext.token);\r\n });\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.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n\r\n\r\n}"]}
1
+ {"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":";;;;AAAA,oEAAiC;AACjC,2DAAiF;AACjF,yEAAyE;AACzE,uEAAoE;AACpE,yCAAyE;AACzE,qDAAkD;AAClD,iFAA8E;AAC9E,qCAAkC;AAClC,iDAA0F;AAC1F,sDAAyE;AACzE,0EAAuG;AACvG,yEAAwG;AACxG,mEAA+F;AAC/F,qEAAkE;AAClE,iFAA4C;AAC5C,oDAAsE;AACtE,0EAAoD;AACpD,4DAAuB;AACvB,uEAAqG;AAGrG,2DAAmF;AACnF,8EAAkC;AAClC,sEAAiG;AACjG,oFAAsH;AACtH,4EAA0G;AAC1G,sEAAiG;AACjG,2EAAwE;AA+GxE,MAAa,GAAG;IACd,SAAS,CAAa;IACtB,MAAM,CAAY;IAClB,IAAI,CAsBF;IACF,MAAM,CAAqB;IAC3B,OAAO,CAA0C;IACzC,OAAO,CAAU;IACjB,OAAO,CAAU;IACzB,YAAY,SAAqB,EAAE,MAA4B;QAC7D,IAAI,CAAC,SAAS,GAAG,SAAgB,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAY,IAAI,IAAI,yBAAW,EAAE,CAAC;QACxD,MAAM,CAAC,QAAQ,GAAG;YAChB,MAAM,EAAE,IAAI;YACZ,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,KAAK;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC3B,CAAC;QACF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC3C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QACtC,MAAM,CAAC,UAAU,GAAG;YAClB,SAAS,EAAE,SAAS;YACpB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;SAC7B,CAAA;QAED,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAEzH,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;YAE7C,MAAM,CAAC,eAAe,CAAC,WAAW,GAAG;gBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI;oBAChC,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,KAAK;oBACX,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,KAAK;oBACV,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,KAAK;iBACX;aACF,CAAC;SACH;QAED,aAAa;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,IAAI,GAAG;YACV,YAAY,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACtC,MAAM,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAChC,OAAO,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YACjC,kBAAkB,EAAE,IAAI,oBAAO,CAAC,UAAU,EAAE;YAC5C,KAAK,EAAG,MAAM,CAAC,IAAI,EAAE,KAAa,IAAK,EAAiB;YACxD,QAAQ,EAAE,EAAE,GAAG,uBAAQ,EAAE;YACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;YAC3B,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,SAAS,EAAE,IAAI,GAAG,EAAE;YACpB,iBAAiB,EAAE,IAAI,GAAG,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE;YACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI,CAAC,GAAG,GAAG,QAAQ;oBACjB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBACpE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,IAAa;oBAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;wBAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;qBAC5D;yBAAM;wBACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;qBACtD;gBACH,CAAC;gBACD,KAAK;oBACH,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjB,CAAC;gBACD,GAAG,CAAC,SAAiB;oBACnB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,EAAE,EAAE;aACZ,CAAQ;SACV,CAAA;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAW,CAAC,CAAC;QAEtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,CAAC;YAChB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;QAE3F,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GACrB,MAAM,CAAC,OACR,CAAC,CAAC;QACH,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3C,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC;gBAC9B,GAAG,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAQ;gBACvC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC;oBAChC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU;oBACrC,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY;iBAC5C,CAAC,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,aAAa,CAAC,MAAM,GAAG,MAA8B,CAAC;SACvD;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACjH,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,mDAAwB,EAAC,IAAW,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAA,uCAAkB,EAAC,IAAW,CAAC,CAAC,CAAC;QACzD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE;YAC3D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;gBAC5B,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE;wBAC1C,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;yBAC5B;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3C,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAA;YACH,CAAC,CAAC,EAAE,CAAC,CAAC;SACP;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EAAE;YACtD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gBAEjC,SAAS,SAAS,CAAC,OAAwB;oBACzC,IAAA,6CAAqB,EAAC,IAAW,EAAE,OAAO,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACtC,OAAO,GAAG,EAAE;oBACV,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;gBACzC,CAAC,CAAA;YACH,CAAC,CAAC,EAAE,CAAC,CAAC;SACP;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAC9B,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAClD,MAAM,EAAE,EAAE,CAAC;SACZ;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,gBAAgB,GAAG,IAAI,sCAAmB,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,IAAI,SAAS,GAAG,UAAU,GAA6B;gBACrD,IAAI,YAAY,GAAG,IAAI,wBAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/C,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,YAAY,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBACtL,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAC5D,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE3H,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC5J,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC7D,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE/G,IAAI,MAAM,GAAG,UAAU,GAAkC;gBACvD,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAChM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;gBAC7D,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAElH,IAAI,gBAAgB,GAAG,UAAU,GAA4C;gBAC3E,IAAI,mBAAmB,GAAG,IAAI,sCAAmB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACpE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,mBAAmB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBACxO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,mBAA0B,CAAC,CAAC;gBACjF,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAEhJ,IAAI,cAAc,GAAG,UAAU,GAA0C;gBACvE,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAChO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAwB,CAAC,CAAC;gBAC7E,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE1I,IAAI,cAAc,GAAG,UAAU,GAA0C;gBACvE,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAChO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAwB,CAAC,CAAC;gBAC7E,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE1I,IAAI,iBAAiB,GAAG,UAAU,GAA6C;gBAC7E,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACtE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,oBAAoB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAC5O,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAA2B,CAAC,CAAC;gBACnF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAEnJ,IAAI,qBAAqB,GAAG,UAAU,GAAiD;gBACrF,IAAI,wBAAwB,GAAG,IAAI,gDAAwB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,wBAAwB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAC5P,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,wBAA+B,CAAC,CAAC;gBAC3F,OAAO,wBAAwB,CAAC;YAClC,CAAC,CAAC;YACF,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE/J,IAAI,kBAAkB,GAAG,UAAU,GAA8C;gBAC/E,IAAI,qBAAqB,GAAG,IAAI,0CAAqB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACxE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,qBAAqB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAChP,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,qBAA4B,CAAC,CAAC;gBACrF,OAAO,qBAAqB,CAAC;YAC/B,CAAC,CAAC;YACF,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAEtJ,IAAI,eAAe,GAAG,UAAU,GAA2C;gBACzE,IAAI,kBAAkB,GAAG,IAAI,oCAAkB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAClE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,kBAAkB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBACpO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,kBAAyB,CAAC,CAAC;gBAC/E,OAAO,kBAAkB,CAAC;YAC5B,CAAC,CAAC;YACF,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE7I,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;gBAC5L,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;gBAC3D,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAE/G,IAAI,MAAM,GAAG,UAAU,GAAsC;gBAC3D,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC7I,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAAE,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACjD,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAElH,IAAI,WAAW,GAAG,UAAU,GAAuC;gBACjE,IAAI,cAAc,GAAG,IAAI,4BAAc,CAAC,IAAI,EAAE,GAAG,CAAQ,CAAC;gBAC1D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,cAAc,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC9I,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC;gBAC7D,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBACpD,OAAO,cAAc,CAAC;YACxB,CAAC,CAAC;YACF,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAEjI,IAAI,iBAAiB,GAAG,UAAU,GAAiC;gBACjE,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/D,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,oBAAoB,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBAC9K,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;gBAClF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE;gBAAQ,YAAY,GAAG,IAAW,IAAI,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC,CAAC,CAAC;aAAE,CAAC,CAAC;YAEnJ,MAAM,EAAE,CAAC;gBACP,SAAS;gBACT,KAAK;gBACL,gBAAgB;gBAChB,MAAM;gBACN,MAAM;gBACN,gBAAgB;gBAChB,cAAc;gBACd,cAAc;gBACd,iBAAiB;gBACjB,qBAAqB;gBACrB,kBAAkB;gBAClB,eAAe;gBACf,WAAW;gBACX,KAAK;gBACL,iBAAiB;gBACjB,QAAQ,CAAC,EAA4B;oBACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAsF,IAAgB,EAAE,IAA4E;QACtL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAS,CAAC,CAAC,CAAC;IACnG,CAAC;IAED;;OAEG;IACH,WAAW,CAAiF,IAAsB;QAChH,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAW,CAAQ,CAAC;IACxD,CAAC;IAED,MAAM,CAAoE,IAAkB;QAC1F,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACxE,CAAC;IACD;;OAEG;IACH,KAAK,CAA6D,IAAgB;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAA+D,IAAiB;QACpF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CAA6B,CAAI,EAAE,YAA4B;QAChE,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAQ,CAAC,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC;SACrB;QACD,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,GAAG,CAA6B,CAAI,EAAE,CAAgB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,CAAS;QACX,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,CAAS;QACd,OAAO,gBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,yBAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;YAChE,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAA6C;QAC1D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAKD,KAAK,CAAC,OAAO,CAAC,GAAG,IAAW;QAC1B,IAAI,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,IAAI,oBAAoB,IAAI,CAAC,CAAC,IAAI,IAAI,iBAAiB,CAAQ,CAAC;QACrJ,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;YACf,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;aACH;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,MAAM,IAAA,yCAAmB,EAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,YAAY,EACjD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;aACH;SACF;IACH,CAAC;CAGF;AAjcD,kBAicC","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/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport { DBIStringSelectMenu, TDBIStringSelectMenuOmitted } from \"./types/Components/StringSelectMenu\";\r\nimport { DBIMessageContextMenu, TDBIMessageContextMenuOmitted } from \"./types/other/MessageContextMenu\";\r\nimport { DBIUserContextMenu, TDBIUserContextMenuOmitted } from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport { DBIInteractionLocale, TDBIInteractionLocaleOmitted } from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBICustomEvent, TDBICustomEventOmitted } from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport { DBIUserSelectMenu, TDBIUserSelectMenuOmitted } from \"./types/Components/UserSelectMenu\";\r\nimport { DBIMentionableSelectMenu, TDBIMentionableSelectMenuOmitted } from \"./types/Components/MentionableSelectMenu\";\r\nimport { DBIChannelSelectMenu, TDBIChannelSelectMenuOmitted } from \"./types/Components/ChannelSelectMenu\";\r\nimport { DBIRoleSelectMenu, TDBIRoleSelectMenuOmitted } from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type DBIClientData<TNamespace extends NamespaceEnums> = { namespace: NamespaceData[TNamespace][\"clientNamespaces\"], token: string, options: Discord.ClientOptions, client: Discord.Client<true> };\r\n\r\nexport interface DBIConfig {\r\n discord: {\r\n namespace: string,\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 messageCommands?: {\r\n prefixes: string[];\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n }\r\n }\r\n}\r\n\r\nexport interface DBIConfigConstructor {\r\n discord: {\r\n token: string;\r\n options: Discord.ClientOptions\r\n } | {\r\n namespace: string,\r\n token: string,\r\n options: Discord.ClientOptions,\r\n }[];\r\n\r\n defaults?: {\r\n locale?: 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 messageCommands?: {\r\n prefixes: string[];\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n }\r\n }\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(cfg: TDBIStringSelectMenuOmitted<TNamespace>): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(cfg: TDBIUserSelectMenuOmitted<TNamespace>): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(cfg: TDBIRoleSelectMenuOmitted<TNamespace>): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(cfg: TDBIChannelSelectMenuOmitted<TNamespace>): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(cfg: TDBIMentionableSelectMenuOmitted<TNamespace>): DBIMentionableSelectMenu<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 data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number, value: any, ttl?: number }>;\r\n clients:\r\n & DBIClientData<TNamespace>[]\r\n & {\r\n next(key?: string): DBIClientData<TNamespace>,\r\n random(): DBIClientData<TNamespace>,\r\n random(size: number): DBIClientData<TNamespace>[],\r\n first(): DBIClientData<TNamespace>,\r\n get(namespace: NamespaceData[TNamespace][\"clientNamespaces\"]): DBIClientData<TNamespace>,\r\n indexes: Record<string, number>\r\n }\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = config.store as any || new MemoryStore();\r\n config.defaults = {\r\n locale: \"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 if (config.messageCommands) {\r\n if (config.strict && !config.messageCommands?.prefixes?.length) throw new Error(\"No message command prefixes provided.\"); \r\n\r\n let { typeAliases } = config.messageCommands;\r\n\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n \"true\": true,\r\n \"false\": false,\r\n \"yes\": true,\r\n \"no\": false,\r\n \"y\": true,\r\n \"n\": false,\r\n \"1\": true,\r\n \"0\": false\r\n }\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = (((this.indexes[key] ?? -1) + 1) % this.length);\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {}\r\n }) as any\r\n }\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord) ?\r\n config.discord :\r\n [{ token: config.discord.token, options: config.discord.options, namespace: \"default\" }];\r\n \r\n this.data.clients.push(...(\r\n config.discord as any\r\n ));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...(clientContext.options || {}) as any,\r\n ...(config.sharding == \"hybrid\" ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS\r\n } : {})\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (this.data.clients.length !== 1 && !(config.sharding && config.sharding === \"off\"))\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster = config.sharding == \"hybrid\" ? new Sharding.ClusterClient(this.data.clients[0].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 const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add((() => {\r\n 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 if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add((() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n }\r\n })());\r\n }\r\n }\r\n\r\n 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 StringSelectMenu = function (cfg: TDBIStringSelectMenuOmitted<TNamespace>) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiStringSelectMenu.name)) throw new Error(`DBIStringSelectMenu \"${dbiStringSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiStringSelectMenu.name, dbiStringSelectMenu as any);\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(StringSelectMenu, class { constructor(...args: any[]) { return StringSelectMenu.apply(this, args as any); } });\r\n\r\n let UserSelectMenu = function (cfg: TDBIUserSelectMenuOmitted<TNamespace>) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiUserSelectMenu.name)) throw new Error(`DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiUserSelectMenu.name, dbiUserSelectMenu as any);\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(UserSelectMenu, class { constructor(...args: any[]) { return UserSelectMenu.apply(this, args as any); } });\r\n\r\n let RoleSelectMenu = function (cfg: TDBIRoleSelectMenuOmitted<TNamespace>) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiRoleSelectMenu.name)) throw new Error(`DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiRoleSelectMenu.name, dbiRoleSelectMenu as any);\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(RoleSelectMenu, class { constructor(...args: any[]) { return RoleSelectMenu.apply(this, args as any); } });\r\n\r\n let ChannelSelectMenu = function (cfg: TDBIChannelSelectMenuOmitted<TNamespace>) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiChannelSelectMenu.name)) throw new Error(`DBIChannelSelectMenu \"${dbiChannelSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiChannelSelectMenu.name, dbiChannelSelectMenu as any);\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(ChannelSelectMenu, class { constructor(...args: any[]) { return ChannelSelectMenu.apply(this, args as any); } });\r\n\r\n let MentionableSelectMenu = function (cfg: TDBIMentionableSelectMenuOmitted<TNamespace>) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiMentionableSelectMenu.name)) throw new Error(`DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type}\"!`);\r\n self.data.interactions.set(dbiMentionableSelectMenu.name, dbiMentionableSelectMenu as any);\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(MentionableSelectMenu, class { constructor(...args: any[]) { return MentionableSelectMenu.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 StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => a.name.length - b.name.length);\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.data.clients.forEach((d) => d.client.emit(name as any, { ...args, _DIRECT_: true } as any));\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 client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(name?: TClientName): DBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(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 aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(this.config.sharding == \"default\" ? null : clientContext.token);\r\n });\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.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n\r\n\r\n}"]}
package/dist/Events.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { NamespaceEnums, NamespaceData } from "../generated/namespaceData";
2
2
  import { DBI } from "./DBI";
3
3
  import { TDBIMessageCommandArgumentErrorTypes } from "./methods/handleMessageCommands";
4
- import { ClientEvents, DBIEvent } from "./types/Event";
4
+ import { ClientEvents } from "./types/Event";
5
5
  import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
6
6
  import { FakeMessageInteraction } from "./types/other/FakeMessageInteraction";
7
7
  import { DBILocale } from "./types/other/Locale";
@@ -14,7 +14,6 @@ export type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {
14
14
  guild: DBILocale<TNamespace>;
15
15
  };
16
16
  eventName: K;
17
- dbiEvent: DBIEvent<TNamespace>;
18
17
  } & (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K];
19
18
  }[keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])];
20
19
  export declare class Events<TNamespace extends NamespaceEnums> {
@@ -35,7 +34,6 @@ export declare class Events<TNamespace extends NamespaceEnums> {
35
34
  }): (() => any);
36
35
  on(eventName: "eventError", handler: (data: TDBIEventHandlerCtx<TNamespace> & {
37
36
  error: any;
38
- dbiEvent: DBIEvent<TNamespace>;
39
37
  }) => Promise<boolean> | boolean, options?: {
40
38
  once: boolean;
41
39
  }): (() => any);
@@ -58,10 +56,6 @@ export declare class Events<TNamespace extends NamespaceEnums> {
58
56
  extra?: any;
59
57
  };
60
58
  value: any;
61
- locale: {
62
- guild?: DBILocale<TNamespace>;
63
- user: DBILocale<TNamespace>;
64
- };
65
59
  }) => Promise<boolean> | boolean, options?: {
66
60
  once: boolean;
67
61
  }): (() => any);
@@ -1 +1 @@
1
- {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Events.d.ts","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAeA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,EAAE;SACf,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAS;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAsCD,EAAE,CAAC,SAAyB,EAAE,OAAkD,EAAE,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5H,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAgB,EAAE,CAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,CAAA;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAA;SACF;IACH,CAAC;IAED,GAAG,CAAC,SAAyB,EAAE,OAAkD;QAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAxFD,wBAwFC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { ClientEvents, DBIEvent } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIEventNames = \"beforeInteraction\" | \"afterInteraction\" | \"interactionRateLimit\" | \"beforeEvent\" | \"afterEvent\" | \"interactionError\" | \"eventError\" | \"messageCommandArgumentError\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K, dbiEvent: DBIEvent<TNamespace> } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K]\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\r\n this.DBI = DBI;\r\n\r\n this.handlers = {\r\n beforeInteraction: [],\r\n afterInteraction: [],\r\n interactionRateLimit: [],\r\n beforeEvent: [],\r\n afterEvent: [],\r\n interactionError: [],\r\n eventError: []\r\n }\r\n }\r\n\r\n async trigger(name: TDBIEventNames, data: any): Promise<boolean> {\r\n let handlers = this.handlers[name];\r\n if (!handlers) return true;\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n }\r\n return true;\r\n }\r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace> & { error: any }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any, dbiEvent: DBIEvent<TNamespace> }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & { rateLimit: { type: TDBIRateLimitTypes, duration: number, at: number } }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: { message: Discord.Message, interaction: FakeMessageInteraction, error: { type: TDBIMessageCommandArgumentErrorTypes, option: any, index: number, extra?: any }, value: any, locale: { guild?: DBILocale<TNamespace>, user: DBILocale<TNamespace> } }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean, options: { once: boolean } = { once: false }): (() => any) {\r\n if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\r\n if (options.once) {\r\n let h = (data) => {\r\n this.off(eventName, h);\r\n return handler(data);\r\n };\r\n this.on(eventName as any, h as any, { once: false });\r\n return () => {\r\n this.off(eventName, h);\r\n }\r\n } else {\r\n this.handlers[eventName].push(handler);\r\n return () => {\r\n this.off(eventName, handler);\r\n }\r\n }\r\n }\r\n\r\n off(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean) {\r\n let l = this.handlers[eventName];\r\n if (!l) return [];\r\n return l.splice(l.indexOf(handler), 1);\r\n }\r\n}"]}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAeA,MAAa,MAAM;IACjB,GAAG,CAAkB;IACrB,QAAQ,CAAmE;IAC3E,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG;YACd,iBAAiB,EAAE,EAAE;YACrB,gBAAgB,EAAE,EAAE;YACpB,oBAAoB,EAAE,EAAE;YACxB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,gBAAgB,EAAE,EAAE;YACpB,UAAU,EAAE,EAAE;SACf,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAS;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;SACrC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAuCD,EAAE,CAAC,SAAyB,EAAE,OAAkD,EAAE,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAC5H,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC5E,IAAI,OAAO,CAAC,IAAI,EAAE;YAChB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;gBACf,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,SAAgB,EAAE,CAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACzB,CAAC,CAAA;SACF;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC,CAAA;SACF;IACH,CAAC;IAED,GAAG,CAAC,SAAyB,EAAE,OAAkD;QAC/E,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF;AAzFD,wBAyFC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { ClientEvents } from \"./types/Event\";\r\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\nimport { DBILocale } from \"./types/other/Locale\";\r\nimport Discord from \"discord.js\";\r\n\r\nexport type TDBIEventNames = \"beforeInteraction\" | \"afterInteraction\" | \"interactionRateLimit\" | \"beforeEvent\" | \"afterEvent\" | \"interactionError\" | \"eventError\" | \"messageCommandArgumentError\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K]\r\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\r\n\r\nexport class Events<TNamespace extends NamespaceEnums> {\r\n DBI: DBI<TNamespace>;\r\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\r\n constructor(DBI: DBI<TNamespace>) {\r\n this.DBI = DBI;\r\n\r\n this.handlers = {\r\n beforeInteraction: [],\r\n afterInteraction: [],\r\n interactionRateLimit: [],\r\n beforeEvent: [],\r\n afterEvent: [],\r\n interactionError: [],\r\n eventError: []\r\n }\r\n }\r\n \r\n async trigger(name: TDBIEventNames, data: any): Promise<boolean> {\r\n let handlers = this.handlers[name];\r\n if (!handlers) return true;\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n }\r\n return true;\r\n }\r\n \r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (data: IDBIBaseExecuteCtx<TNamespace> & { error: any }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace>) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (data: TDBIEventHandlerCtx<TNamespace> & { error: any }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & { rateLimit: { type: TDBIRateLimitTypes, duration: number, at: number } }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: { message: Discord.Message, interaction: FakeMessageInteraction, error: { type: TDBIMessageCommandArgumentErrorTypes, option: any, index: number, extra?: any }, value: any }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): (() => any);\r\n\r\n on(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean, options: { once: boolean } = { once: false }): (() => any) {\r\n if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\r\n if (options.once) {\r\n let h = (data) => {\r\n this.off(eventName, h);\r\n return handler(data);\r\n };\r\n this.on(eventName as any, h as any, { once: false });\r\n return () => {\r\n this.off(eventName, h);\r\n }\r\n } else {\r\n this.handlers[eventName].push(handler);\r\n return () => {\r\n this.off(eventName, handler);\r\n }\r\n }\r\n }\r\n\r\n off(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean) {\r\n let l = this.handlers[eventName];\r\n if (!l) return [];\r\n return l.splice(l.indexOf(handler), 1);\r\n }\r\n}"]}
package/dist/index.js CHANGED
@@ -23,4 +23,7 @@ exports.Utils = {
23
23
  unloadModule: unloadModule_1.unloadModule,
24
24
  recursiveUnload: recursiveUnload_1.recursiveUnload
25
25
  };
26
+ if (require.main === module) {
27
+ console.log("Dbi's script is not ready to use.");
28
+ }
26
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,+BAAkD;AAClD,6DAA0D;AAC1D,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,wDAAwB;AACxB,+CAAgE;AAChE,uDAAoD;AACpD,6DAA0D;AAE7C,QAAA,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,SAAgB,SAAS,CAAsE,SAAqB,EAAE,GAAyB;IAC7I,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAFD,8BAEC;AAAA,CAAC;AAEW,QAAA,KAAK,GAAG;IACnB,aAAa,EAAb,wBAAa;IACb,aAAa,EAAb,wBAAa;IACb,eAAe,EAAf,iCAAe;IACf,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;CAChB,CAAC","sourcesContent":["import { NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBI, DBIConfigConstructor } from \"./DBI\";\r\nimport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nimport path from \"path\";\r\nimport { parseCustomId, buildCustomId } from \"./utils/customId\";\r\nimport { unloadModule } from \"./utils/unloadModule\";\r\nimport { recursiveUnload } from \"./utils/recursiveUnload\";\r\n\r\nexport const generatedPath = path.resolve(__dirname, \"../generated\");\r\n\r\nexport function createDBI<TNamespace extends NamespaceEnums, TOtherType = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor): DBI<TNamespace, TOtherType> {\r\n return new DBI<TNamespace, TOtherType>(namespace, cfg);\r\n};\r\n\r\nexport const Utils = {\r\n parseCustomId,\r\n buildCustomId,\r\n recursiveImport,\r\n unloadModule,\r\n recursiveUnload\r\n};"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AACA,+BAAkD;AAClD,6DAA0D;AAC1D,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,wDAAwB;AACxB,+CAAgE;AAChE,uDAAoD;AACpD,6DAA0D;AAE7C,QAAA,aAAa,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,SAAgB,SAAS,CAAsE,SAAqB,EAAE,GAAyB;IAC7I,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;AAFD,8BAEC;AAAA,CAAC;AAEW,QAAA,KAAK,GAAG;IACnB,aAAa,EAAb,wBAAa;IACb,aAAa,EAAb,wBAAa;IACb,eAAe,EAAf,iCAAe;IACf,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;CAChB,CAAC;AAEF,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;CACjD","sourcesContent":["import { NamespaceEnums } from \"../generated/namespaceData\";\r\nimport { DBI, DBIConfigConstructor } from \"./DBI\";\r\nimport { recursiveImport } from \"./utils/recursiveImport\";\r\nexport { MemoryStore } from \"./utils/MemoryStore\";\r\n\r\nimport path from \"path\";\r\nimport { parseCustomId, buildCustomId } from \"./utils/customId\";\r\nimport { unloadModule } from \"./utils/unloadModule\";\r\nimport { recursiveUnload } from \"./utils/recursiveUnload\";\r\n\r\nexport const generatedPath = path.resolve(__dirname, \"../generated\");\r\n\r\nexport function createDBI<TNamespace extends NamespaceEnums, TOtherType = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor): DBI<TNamespace, TOtherType> {\r\n return new DBI<TNamespace, TOtherType>(namespace, cfg);\r\n};\r\n\r\nexport const Utils = {\r\n parseCustomId,\r\n buildCustomId,\r\n recursiveImport,\r\n unloadModule,\r\n recursiveUnload\r\n};\r\n\r\nif (require.main === module) {\r\n console.log(\"Dbi's script is not ready to use.\")\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.d.ts","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,OAAO,EAAgD,MAAM,YAAY,CAAC;AACxI,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAO7B,MAAM,MAAM,oCAAoC,GAAG,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAE/U,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,iBA4TrF"}
1
+ {"version":3,"file":"handleMessageCommands.d.ts","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,OAAO,EAAgD,MAAM,YAAY,CAAC;AACxI,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAO7B,MAAM,MAAM,oCAAoC,GAAG,uBAAuB,GAAG,WAAW,GAAG,WAAW,GAAG,eAAe,GAAG,gBAAgB,GAAG,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,GAAG,gBAAgB,GAAG,aAAa,GAAG,oBAAoB,GAAG,uBAAuB,CAAC;AAE/U,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,iBA0SrF"}
@@ -59,8 +59,6 @@ async function handleMessageCommands(dbi, message) {
59
59
  lastValue = value;
60
60
  switch (option.type) {
61
61
  case discord_js_1.ApplicationCommandOptionType.String: {
62
- if (!option.required && !value)
63
- break;
64
62
  if (option.autocomplete && option.onComplete) {
65
63
  let choices = await option.onComplete({
66
64
  interaction,
@@ -113,8 +111,6 @@ async function handleMessageCommands(dbi, message) {
113
111
  break;
114
112
  }
115
113
  case discord_js_1.ApplicationCommandOptionType.Integer: {
116
- if (!option.required && !value)
117
- break;
118
114
  let parsedInt = parseInt(value);
119
115
  if (option.autocomplete && option.onComplete) {
120
116
  let choices = await option.onComplete({
@@ -173,8 +169,6 @@ async function handleMessageCommands(dbi, message) {
173
169
  break;
174
170
  }
175
171
  case discord_js_1.ApplicationCommandOptionType.Number: {
176
- if (!option.required && !value)
177
- break;
178
172
  let parsedFloat = parseFloat(value);
179
173
  if (option.autocomplete && option.onComplete) {
180
174
  let choices = await option.onComplete({
@@ -234,42 +228,35 @@ async function handleMessageCommands(dbi, message) {
234
228
  }
235
229
  case discord_js_1.ApplicationCommandOptionType.Boolean: {
236
230
  let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);
237
- if (option.required && !boolKeys.includes(value.toLowerCase())) {
231
+ if (!boolKeys.includes(value.toLowerCase())) {
238
232
  errorType = "InvalidBoolean";
239
233
  break;
240
234
  }
241
235
  break;
242
236
  }
243
237
  case discord_js_1.ApplicationCommandOptionType.User: {
244
- await message.client.users.fetch(interaction.options.getUserId(option.name)).catch(() => { });
245
- if (option.required && !interaction.options.getUser(option.name)) {
238
+ if (!interaction.options.getUser(option.name)) {
246
239
  errorType = "InvalidUser";
247
240
  break;
248
241
  }
249
242
  break;
250
243
  }
251
244
  case discord_js_1.ApplicationCommandOptionType.Channel: {
252
- await message.client.channels.fetch(interaction.options.getChannelId(option.name)).catch(() => { });
253
- if (option.required && !interaction.options.getChannel(option.name, null, option.channelTypes)) {
245
+ if (!interaction.options.getChannel(option.name, null, option.channelTypes)) {
254
246
  errorType = "InvalidChannel";
255
247
  break;
256
248
  }
257
249
  break;
258
250
  }
259
251
  case discord_js_1.ApplicationCommandOptionType.Role: {
260
- await message.guild.roles.fetch(interaction.options.getRoleId(option.name)).catch(() => { });
261
- if (option.required && !interaction.options.getRole(option.name)) {
252
+ if (!interaction.options.getRole(option.name)) {
262
253
  errorType = "InvalidRole";
263
254
  break;
264
255
  }
265
256
  break;
266
257
  }
267
258
  case discord_js_1.ApplicationCommandOptionType.Mentionable: {
268
- let mentionableId = interaction.options.getMentionableId(option.name);
269
- await message.guild.roles.fetch(mentionableId).catch(() => { });
270
- await message.client.channels.fetch(mentionableId).catch(() => { });
271
- await message.client.users.fetch(mentionableId).catch(() => { });
272
- if (option.required && !interaction.options.getMentionable(option.name)) {
259
+ if (!interaction.options.getMentionable(option.name)) {
273
260
  errorType = "InvalidMentionable";
274
261
  break;
275
262
  }
@@ -296,10 +283,6 @@ async function handleMessageCommands(dbi, message) {
296
283
  let res = await dbi.events.trigger("messageCommandArgumentError", {
297
284
  interaction,
298
285
  message,
299
- locale: {
300
- user: dbi.data.locales.get(interaction.locale) || dbi.data.locales.get(dbi.config.defaults.locale),
301
- guild: message.guild?.preferredLocale ? (dbi.data.locales.get(message.guild?.preferredLocale?.split("-")?.at(0)) || dbi.data.locales.get(dbi.config.defaults.locale)) : null
302
- },
303
286
  error: {
304
287
  type: errorType,
305
288
  option: lastOption,
@@ -312,7 +295,6 @@ async function handleMessageCommands(dbi, message) {
312
295
  return;
313
296
  }
314
297
  }
315
- interaction.init();
316
298
  dbi.data.clients.first().client.emit("interactionCreate", interaction);
317
299
  }
318
300
  exports.handleMessageCommands = handleMessageCommands;
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApplicationCommandType, ChatInputCommandInteraction, Message, MessagePayload, ApplicationCommandOptionType } from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes = \"MissingRequiredOption\" | \"MinLength\" | \"MaxLength\" | \"InvalidChoice\" | \"InvalidInteger\" | \"MinInteger\" | \"MaxInteger\" | \"InvalidNumber\" | \"MinNumber\" | \"MaxNumber\" | \"InvalidBoolean\" | \"InvalidUser\" | \"InvalidChannel\" | \"InvalidRole\" | \"InvalidMentionable\" | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(dbi: DBI<NamespaceEnums>, message: Message) {\r\n const chatInputs = dbi.data.interactions.filter(i => i.type === \"ChatInput\");\r\n const prefixes = dbi.config.messageCommands.prefixes ?? [];\r\n if (!prefixes.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find(p => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string = message.guild.preferredLocale?.split(\"-\")?.at(0) || dbi.config.defaults.locale as any;\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find(i => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find(a => contentLower.startsWith(a));\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data.interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(localeData.data || {})) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find(i => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(dbi, message, chatInput, locale, commandName, usedPrefix);\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n\r\n if (!option.required && !value) break;\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.name === value || c.value === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.minLength && value.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedInt || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedInt || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n if (!option.required && !value) break;\r\n\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedFloat || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedFloat || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);\r\n if (option.required && !boolKeys.includes(value.toLowerCase())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n await message.client.users.fetch(interaction.options.getUserId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n await message.client.channels.fetch(interaction.options.getChannelId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getChannel(option.name, null, option.channelTypes)) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n await message.guild.roles.fetch(interaction.options.getRoleId(option.name)).catch(() => { });\r\n if (option.required && !interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n let mentionableId = interaction.options.getMentionableId(option.name);\r\n await message.guild.roles.fetch(mentionableId).catch(() => { });\r\n await message.client.channels.fetch(mentionableId).catch(() => { });\r\n await message.client.users.fetch(mentionableId).catch(() => { });\r\n if (option.required && !interaction.options.getMentionable(option.name)) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n locale: {\r\n user: dbi.data.locales.get(interaction.locale) || dbi.data.locales.get(dbi.config.defaults.locale),\r\n guild: message.guild?.preferredLocale ? (dbi.data.locales.get(message.guild?.preferredLocale?.split(\"-\")?.at(0)) || dbi.data.locales.get(dbi.config.defaults.locale)) : null\r\n },\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex\r\n },\r\n value: lastValue\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n interaction.init();\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}"]}
1
+ {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import { ApplicationCommandType, ChatInputCommandInteraction, Message, MessagePayload, ApplicationCommandOptionType } from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\r\nimport { TDBILocaleString } from \"../types/other/Locale\";\r\n\r\nconst INTEGER_REGEX = /^-?\\d+$/;\r\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\r\n\r\nexport type TDBIMessageCommandArgumentErrorTypes = \"MissingRequiredOption\" | \"MinLength\" | \"MaxLength\" | \"InvalidChoice\" | \"InvalidInteger\" | \"MinInteger\" | \"MaxInteger\" | \"InvalidNumber\" | \"MinNumber\" | \"MaxNumber\" | \"InvalidBoolean\" | \"InvalidUser\" | \"InvalidChannel\" | \"InvalidRole\" | \"InvalidMentionable\" | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(dbi: DBI<NamespaceEnums>, message: Message) {\r\n const chatInputs = dbi.data.interactions.filter(i => i.type === \"ChatInput\");\r\n const prefixes = dbi.config.messageCommands.prefixes ?? [];\r\n if (!prefixes.length) return;\r\n const content = message.content;\r\n const usedPrefix = prefixes.find(p => content.startsWith(p));\r\n if (!usedPrefix) return;\r\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\r\n const contentLower = contentWithoutPrefix.toLowerCase();\r\n\r\n let locale: string = message.guild.preferredLocale?.split(\"-\")?.at(0) || dbi.config.defaults.locale as any;\r\n let usedAlias: string | undefined;\r\n let chatInput = chatInputs.find(i => {\r\n let found = contentLower.startsWith(i.name);\r\n if (found) return true;\r\n let alias = i.other?.messageCommand?.aliases?.find(a => contentLower.startsWith(a));\r\n if (alias) {\r\n usedAlias = alias;\r\n return true;\r\n }\r\n return false;\r\n });\r\n let commandName = usedAlias ?? chatInput?.name;\r\n\r\n if (!chatInput) {\r\n fLoop: for (const [localeInterName, localeData] of dbi.data.interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(localeData.data || {})) {\r\n if (contentLower.startsWith(translation.name)) {\r\n commandName = translation.name;\r\n locale = localeName;\r\n chatInput = chatInputs.find(i => i.name === localeData.name);\r\n break fLoop;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!chatInput) return;\r\n\r\n const interaction = new FakeMessageInteraction(dbi, message, chatInput as any, locale, commandName, usedPrefix);\r\n\r\n if (chatInput.options.length) {\r\n let errorType: TDBIMessageCommandArgumentErrorTypes;\r\n let lastOption: any;\r\n let lastValue: any;\r\n let lastExtra: any;\r\n let lastIndex: number;\r\n for (let i = 0; i < chatInput.options.length; i++) {\r\n lastIndex = i;\r\n const option: any = interaction.dbiChatInputOptions[i];\r\n const value = interaction.parsedArgs.get(option.name)?.value;\r\n\r\n lastOption = option;\r\n lastValue = value;\r\n\r\n switch (option.type) {\r\n case ApplicationCommandOptionType.String: {\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.name === value || c.value === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.name === value || c.value === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (option.minLength && value.length < option.minLength) {\r\n errorType = \"MinLength\";\r\n break;\r\n }\r\n if (option.maxLength && value.length > option.maxLength) {\r\n errorType = \"MaxLength\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n let parsedInt = parseInt(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedInt || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedInt || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!INTEGER_REGEX.test(value)) {\r\n errorType = \"InvalidInteger\";\r\n break;\r\n }\r\n \r\n if (option.minValue && parsedInt < option.minValue) {\r\n errorType = \"MinInteger\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedInt > option.maxValue) {\r\n errorType = \"MaxInteger\";\r\n break;\r\n }\r\n\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n let parsedFloat = parseFloat(value);\r\n\r\n if (option.autocomplete && option.onComplete) {\r\n let choices = await option.onComplete({\r\n interaction,\r\n value\r\n });\r\n if (!choices.length) choices = await option.onComplete({\r\n interaction,\r\n value: \"\"\r\n });\r\n if (choices.length > 20) throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (!choices.find(c => c.value === parsedFloat || c.name === value)) {\r\n if (value) {\r\n errorType = \"InvalidCompleteChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n option._choices = choices;\r\n break;\r\n }\r\n\r\n if (option.choices) {\r\n const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;\r\n const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;\r\n if (!option.choices.find(c => c.value === parsedFloat || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {\r\n lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));\r\n if (value) {\r\n errorType = \"InvalidChoice\";\r\n break;\r\n } else if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n if (!NUMBER_REGEX.test(value)) {\r\n errorType = \"InvalidNumber\";\r\n break;\r\n }\r\n\r\n if (option.minValue && parsedFloat < option.minValue) {\r\n errorType = \"MinNumber\";\r\n break;\r\n }\r\n\r\n if (option.maxValue && parsedFloat > option.maxValue) {\r\n errorType = \"MaxNumber\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);\r\n if (!boolKeys.includes(value.toLowerCase())) {\r\n errorType = \"InvalidBoolean\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n if (!interaction.options.getUser(option.name)) {\r\n errorType = \"InvalidUser\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n if (!interaction.options.getChannel(option.name, null, option.channelTypes)) {\r\n errorType = \"InvalidChannel\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n if (!interaction.options.getRole(option.name)) {\r\n errorType = \"InvalidRole\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n if (!interaction.options.getMentionable(option.name)) {\r\n errorType = \"InvalidMentionable\";\r\n break;\r\n }\r\n break;\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n if (option.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n break;\r\n } else {\r\n lastExtra = null;\r\n lastIndex = null;\r\n lastOption = null;\r\n lastValue = null;\r\n }\r\n }\r\n\r\n if (errorType) {\r\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\r\n interaction,\r\n message,\r\n error: {\r\n type: errorType,\r\n option: lastOption,\r\n extra: lastExtra,\r\n index: lastIndex\r\n },\r\n value: lastValue\r\n });\r\n if (!res) return;\r\n }\r\n }\r\n\r\n\r\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CA2GtE"}
1
+ {"version":3,"file":"hookEventListeners.d.ts","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,GAAG,CAwGtE"}