@mostfeatured/dbi 0.1.29 → 0.1.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/.gitattributes +2 -2
  2. package/.hintrc +7 -7
  3. package/.vscode/settings.json +2 -2
  4. package/LICENSE +674 -674
  5. package/dist/DBI.js.map +1 -1
  6. package/dist/Events.js.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/methods/handleMessageCommands.js.map +1 -1
  9. package/dist/methods/hookEventListeners.js.map +1 -1
  10. package/dist/methods/hookInteractionListeners.js.map +1 -1
  11. package/dist/methods/publishInteractions.js.map +1 -1
  12. package/dist/types/ApplicationRoleConnectionMetadata.js.map +1 -1
  13. package/dist/types/Builders/ButtonBuilder.js.map +1 -1
  14. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +1 -1
  15. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +1 -1
  16. package/dist/types/Builders/ModalBuilder.js.map +1 -1
  17. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +1 -1
  18. package/dist/types/Builders/StringSelectMenuBuilder.js.map +1 -1
  19. package/dist/types/Builders/UserSelectMenuBuilder.js.map +1 -1
  20. package/dist/types/ChatInput/ChatInput.js.map +1 -1
  21. package/dist/types/ChatInput/ChatInputOptions.d.ts +16 -16
  22. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +1 -1
  23. package/dist/types/ChatInput/ChatInputOptions.js.map +1 -1
  24. package/dist/types/Components/Button.js.map +1 -1
  25. package/dist/types/Components/ChannelSelectMenu.js.map +1 -1
  26. package/dist/types/Components/MentionableSelectMenu.js.map +1 -1
  27. package/dist/types/Components/Modal.js.map +1 -1
  28. package/dist/types/Components/RoleSelectMenu.js.map +1 -1
  29. package/dist/types/Components/StringSelectMenu.js.map +1 -1
  30. package/dist/types/Components/UserSelectMenu.js.map +1 -1
  31. package/dist/types/Event.js.map +1 -1
  32. package/dist/types/Interaction.js.map +1 -1
  33. package/dist/types/other/CustomEvent.js.map +1 -1
  34. package/dist/types/other/FakeMessageInteraction.js.map +1 -1
  35. package/dist/types/other/InteractionLocale.js.map +1 -1
  36. package/dist/types/other/Locale.js.map +1 -1
  37. package/dist/types/other/MessageContextMenu.js.map +1 -1
  38. package/dist/types/other/UserContextMenu.js.map +1 -1
  39. package/dist/utils/MemoryStore.js.map +1 -1
  40. package/dist/utils/UtilTypes.js.map +1 -1
  41. package/dist/utils/customId.js.map +1 -1
  42. package/dist/utils/permissions.js.map +1 -1
  43. package/dist/utils/recursiveImport.js.map +1 -1
  44. package/dist/utils/recursiveUnload.js.map +1 -1
  45. package/dist/utils/unloadModule.js.map +1 -1
  46. package/examples/modal/dbi.js +29 -29
  47. package/examples/modal/login.js +14 -14
  48. package/examples/modal/package.json +15 -15
  49. package/examples/modal/publish.js +12 -12
  50. package/examples/modal/src/chatInput.js +37 -37
  51. package/examples/modal/src/components.js +32 -32
  52. package/examples/modal/src/event.js +19 -19
  53. package/examples/modal/src/interactionlocales.js +23 -23
  54. package/examples/modal/src/locales.js +37 -37
  55. package/examples/modal/src/modal.js +27 -27
  56. package/generated/namespaceData.d.ts +14 -14
  57. package/package.json +6 -6
  58. package/readme.md +591 -591
  59. package/src/DBI.ts +1090 -1090
  60. package/src/Events.ts +189 -189
  61. package/src/data/eventMap.json +247 -247
  62. package/src/index.ts +23 -23
  63. package/src/methods/handleMessageCommands.ts +482 -482
  64. package/src/methods/hookEventListeners.ts +118 -118
  65. package/src/methods/hookInteractionListeners.ts +260 -260
  66. package/src/methods/publishInteractions.ts +255 -255
  67. package/src/types/ApplicationRoleConnectionMetadata.ts +19 -19
  68. package/src/types/Builders/ButtonBuilder.ts +52 -52
  69. package/src/types/Builders/ChannelSelectMenuBuilder.ts +52 -52
  70. package/src/types/Builders/MentionableSelectMenuBuilder.ts +52 -52
  71. package/src/types/Builders/ModalBuilder.ts +52 -52
  72. package/src/types/Builders/RoleSelectMenuBuilder.ts +52 -52
  73. package/src/types/Builders/StringSelectMenuBuilder.ts +52 -52
  74. package/src/types/Builders/UserSelectMenuBuilder.ts +52 -52
  75. package/src/types/ChatInput/ChatInput.ts +27 -27
  76. package/src/types/ChatInput/ChatInputOptions.ts +388 -388
  77. package/src/types/Components/Button.ts +38 -38
  78. package/src/types/Components/ChannelSelectMenu.ts +42 -42
  79. package/src/types/Components/MentionableSelectMenu.ts +42 -42
  80. package/src/types/Components/Modal.ts +45 -45
  81. package/src/types/Components/RoleSelectMenu.ts +42 -42
  82. package/src/types/Components/StringSelectMenu.ts +42 -42
  83. package/src/types/Components/UserSelectMenu.ts +42 -42
  84. package/src/types/Event.ts +144 -144
  85. package/src/types/Interaction.ts +96 -96
  86. package/src/types/other/CustomEvent.ts +18 -18
  87. package/src/types/other/FakeMessageInteraction.ts +407 -407
  88. package/src/types/other/InteractionLocale.ts +33 -33
  89. package/src/types/other/Locale.ts +69 -69
  90. package/src/types/other/MessageContextMenu.ts +26 -26
  91. package/src/types/other/UserContextMenu.ts +24 -24
  92. package/src/utils/MemoryStore.ts +27 -27
  93. package/src/utils/UtilTypes.ts +10 -10
  94. package/src/utils/customId.ts +44 -44
  95. package/src/utils/permissions.ts +4 -4
  96. package/src/utils/recursiveImport.ts +22 -22
  97. package/src/utils/recursiveUnload.ts +24 -24
  98. package/src/utils/unloadModule.ts +6 -6
  99. package/tsconfig.json +40 -40
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, { MessagePayload } from \"discord.js\";\nimport {\n DBIChatInput,\n TDBIChatInputOmitted,\n} from \"./types/ChatInput/ChatInput\";\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\nimport { publishInteractions } from \"./methods/publishInteractions\";\nimport { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\nimport { MemoryStore } from \"./utils/MemoryStore\";\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\nimport { Events } from \"./Events\";\nimport {\n DBILocale,\n TDBILocaleConstructor,\n TDBILocaleString,\n} from \"./types/other/Locale\";\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\nimport {\n DBIStringSelectMenu,\n TDBIStringSelectMenuOmitted,\n} from \"./types/Components/StringSelectMenu\";\nimport {\n DBIMessageContextMenu,\n TDBIMessageContextMenuOmitted,\n} from \"./types/other/MessageContextMenu\";\nimport {\n DBIUserContextMenu,\n TDBIUserContextMenuOmitted,\n} from \"./types/other/UserContextMenu\";\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\nimport eventMap from \"./data/eventMap.json\";\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\nimport * as Sharding from \"discord-hybrid-sharding\";\nimport _ from \"lodash\";\nimport {\n DBIInteractionLocale,\n TDBIInteractionLocaleOmitted,\n} from \"./types/other/InteractionLocale\";\nimport { TDBIInteractions } from \"./types/Interaction\";\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\nimport {\n DBICustomEvent,\n TDBICustomEventOmitted,\n} from \"./types/other/CustomEvent\";\nimport aaq from \"async-and-quick\";\nimport {\n DBIUserSelectMenu,\n TDBIUserSelectMenuOmitted,\n} from \"./types/Components/UserSelectMenu\";\nimport {\n DBIMentionableSelectMenu,\n TDBIMentionableSelectMenuOmitted,\n} from \"./types/Components/MentionableSelectMenu\";\nimport {\n DBIChannelSelectMenu,\n TDBIChannelSelectMenuOmitted,\n} from \"./types/Components/ChannelSelectMenu\";\nimport {\n DBIRoleSelectMenu,\n TDBIRoleSelectMenuOmitted,\n} from \"./types/Components/RoleSelectMenu\";\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\n\nexport interface DBIStore {\n get(key: string, defaultValue?: any): Promise<any>;\n set(key: string, value: any): Promise<void>;\n delete(key: string): Promise<void>;\n has(key: string): Promise<boolean>;\n}\n\nexport type TDBIClientData<TNamespace extends NamespaceEnums> = {\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"];\n token: string;\n options: Discord.ClientOptions;\n client: Discord.Client<true>;\n};\n\nexport type TDBIMessageCommandsActionCtx<TNamespace extends NamespaceEnums> = {\n interaction: FakeMessageInteraction;\n dbiInteraction: DBIChatInput<TNamespace>;\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\n}\n\nexport type TDBIMessageCommandsPrefixesCtx = {\n message: Discord.Message;\n};\n\nexport type TDBILocaleInvalidPathCtx<TNamespace extends NamespaceEnums> = {\n path: string;\n locale: DBILocale<TNamespace>;\n}\n\nexport interface DBIConfig<TNamespace extends NamespaceEnums> {\n discord: {\n namespace: string;\n token: string;\n options: Discord.ClientOptions;\n }[];\n defaults: {\n locale: {\n name: TDBILocaleString;\n invalidPath(ctx: TDBILocaleInvalidPathCtx<TNamespace>): string;\n };\n directMessages: boolean;\n defaultMemberPermissions: Discord.PermissionsString[];\n messageCommands: {\n deferReplyContent(ctx: TDBIMessageCommandsActionCtx<TNamespace>): MessagePayload | string | Promise<MessagePayload | string>;\n };\n };\n\n sharding: \"hybrid\" | \"default\" | \"off\";\n /**\n * Persist store. (Default to MemoryStore thats not persis tho.)\n */\n store: DBIStore;\n\n references: {\n autoClear?: {\n check: number;\n ttl: number;\n };\n };\n\n inlineListeners: {\n autoClear?: {\n check: number;\n ttl: number;\n };\n }\n\n strict: boolean;\n messageCommands?: {\n prefixes(ctx: TDBIMessageCommandsPrefixesCtx): string[] | Promise<string[]>;\n typeAliases: {\n booleans: Record<string, boolean>;\n };\n };\n}\n\nexport interface DBIConfigConstructor<TNamespace extends NamespaceEnums, OtherData extends Record<string, any>> {\n discord:\n | {\n token: string;\n options: Discord.ClientOptions;\n }\n | {\n namespace: string;\n token: string;\n options: Discord.ClientOptions;\n }[];\n\n defaults?: {\n locale?: {\n name?: TDBILocaleString;\n invalidPath?: string | ((ctx: TDBILocaleInvalidPathCtx<TNamespace>) => string);\n };\n directMessages?: boolean;\n defaultMemberPermissions?: Discord.PermissionsString[];\n messageCommands?: {\n deferReplyContent?: MessagePayload | string | ((ctx: TDBIMessageCommandsActionCtx<TNamespace>) => MessagePayload | string | Promise<MessagePayload | string>);\n };\n };\n\n sharding?: \"hybrid\" | \"default\" | \"off\";\n /**\n * Persist store. (Default to MemoryStore thats not persis tho.)\n */\n store?: DBIStore;\n\n references?: {\n autoClear?: {\n check: number;\n ttl: number;\n };\n };\n\n inlineListeners?: {\n autoClear?: {\n check: number;\n ttl: number;\n };\n };\n\n data?: {\n other?: OtherData;\n refs?: Map<string, { at: number; value: any; ttl?: number }>;\n };\n\n strict?: boolean;\n\n messageCommands?: {\n prefixes: string[] | ((ctx: TDBIMessageCommandsPrefixesCtx) => string[] | Promise<string[]>);\n typeAliases?: {\n /**\n * Example: {\"yes\": true, \"no\": false}\n */\n booleans?: Record<string, boolean>;\n };\n };\n}\n\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\n StringSelectMenu(\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\n ): DBIStringSelectMenu<TNamespace>;\n UserSelectMenu(\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\n ): DBIUserSelectMenu<TNamespace>;\n RoleSelectMenu(\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\n ): DBIRoleSelectMenu<TNamespace>;\n ChannelSelectMenu(\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\n ): DBIChannelSelectMenu<TNamespace>;\n MentionableSelectMenu(\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\n ): DBIMentionableSelectMenu<TNamespace>;\n MessageContextMenu(\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\n ): DBIMessageContextMenu<TNamespace>;\n UserContextMenu(\n cfg: TDBIUserContextMenuOmitted<TNamespace>\n ): DBIUserContextMenu<TNamespace>;\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(\n cfg: TDBICustomEventOmitted<TNamespace, T>\n ): DBICustomEvent<TNamespace, T>;\n\n createInlineEvent(cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">): DBIEvent<TNamespace>;\n createInlineButton(cfg: Omit<TDBIButtonOmitted<TNamespace>, \"id\" | \"name\">): DBIButton<TNamespace>;\n createInlineStringSelectMenu(\n cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\n ): DBIStringSelectMenu<TNamespace>;\n createInlineUserSelectMenu(\n cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\n ): DBIUserSelectMenu<TNamespace>;\n createInlineRoleSelectMenu(\n cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\n ): DBIRoleSelectMenu<TNamespace>;\n createInlineChannelSelectMenu(\n cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\n ): DBIChannelSelectMenu<TNamespace>;\n createInlineMentionableSelectMenu(\n cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\n ): DBIMentionableSelectMenu<TNamespace>;\n createInlineModal(cfg: Omit<TDBIModalOmitted<TNamespace>, \"id\" | \"name\">): DBIModal<TNamespace>;\n\n onUnload(cb: () => Promise<any> | any): any;\n}\n\nexport class DBI<\n TNamespace extends NamespaceEnums,\n TOtherData extends Record<string, any> = Record<string, any>\n> {\n namespace: TNamespace;\n config: DBIConfig<TNamespace>;\n data: {\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\n other: TOtherData;\n eventMap: Record<string, string[] | { [k: string]: string }>;\n customEventNames: Set<string>;\n unloaders: Set<() => void>;\n registers: Set<(...args: any[]) => any>;\n registerUnloaders: Set<(...args: any[]) => any>;\n refs: Map<string, { at: number; value: any; ttl?: number }>;\n clients: TDBIClientData<TNamespace>[] & {\n next(key?: string): TDBIClientData<TNamespace>;\n random(): TDBIClientData<TNamespace>;\n random(size: number): TDBIClientData<TNamespace>[];\n first(): TDBIClientData<TNamespace>;\n get(\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"]\n ): TDBIClientData<TNamespace>;\n indexes: Record<string, number>;\n };\n };\n events: Events<TNamespace>;\n cluster?: Sharding.ClusterClient<Discord.Client>;\n private _loaded: boolean;\n private _hooked: boolean;\n constructor(namespace: TNamespace, config: DBIConfigConstructor<TNamespace, TOtherData>) {\n this.namespace = namespace as any;\n const self = this;\n\n config.store = (config.store as any) || new MemoryStore();\n config.defaults = {\n locale: (() => {\n const invalidPath = config.defaults?.locale?.invalidPath;\n return {\n ...(config.defaults?.locale || {}),\n invalidPath: (typeof invalidPath === \"function\" ? invalidPath : (ctx: TDBILocaleInvalidPathCtx<TNamespace>) => (invalidPath || `Invalid locale path \"${ctx.path}\".`)) as any\n }\n })(),\n defaultMemberPermissions: [],\n directMessages: false,\n ...(config.defaults || {}),\n messageCommands: (() => {\n const deferReplyContent = config.defaults?.messageCommands?.deferReplyContent\n return {\n ...(config.defaults?.messageCommands || {}),\n deferReplyContent: (typeof deferReplyContent === \"function\" ? deferReplyContent : () => (deferReplyContent || \"Loading...\")) as any\n }\n })(),\n };\n\n config.sharding = config.sharding ?? \"off\";\n config.strict = config.strict ?? true;\n config.references = {\n autoClear: undefined,\n ...(config.references || {}),\n };\n config.inlineListeners = {\n autoClear: {\n check: 60000,\n ttl: 900000,\n },\n ...(config.inlineListeners || {}),\n };\n\n if (config.messageCommands) {\n const { prefixes, typeAliases } = config.messageCommands;\n\n if (Array.isArray(prefixes) && config.strict && !prefixes.length)\n throw new Error(\"No prefixes provided.\");\n\n const prefixesFn = typeof prefixes === \"function\" ? prefixes : () => prefixes;\n\n config.messageCommands.prefixes = prefixesFn;\n config.messageCommands.typeAliases = {\n booleans: typeAliases.booleans ?? {\n true: true,\n false: false,\n yes: true,\n no: false,\n y: true,\n n: false,\n \"1\": true,\n \"0\": false,\n },\n };\n }\n\n // @ts-ignore\n this.config = config;\n\n this.data = {\n interactions: new Discord.Collection(),\n events: new Discord.Collection(),\n locales: new Discord.Collection(),\n interactionLocales: new Discord.Collection(),\n other: (config.data?.other as any) ?? ({} as TOtherData),\n eventMap: { ...eventMap },\n customEventNames: new Set(),\n unloaders: new Set(),\n registers: new Set(),\n registerUnloaders: new Set(),\n refs: config.data?.refs ?? new Map(),\n clients: Object.assign([], {\n next(key = \"global\") {\n this.indexes[key] = ((this.indexes[key] ?? -1) + 1) % this.length;\n return this[this.indexes[key]];\n },\n random(size?: number) {\n if (typeof size === \"number\") {\n return this.sort(() => Math.random() - 0.5).slice(0, size);\n } else {\n return this[Math.floor(Math.random() * this.length)];\n }\n },\n first() {\n return this[0];\n },\n get(namespace: string) {\n return this.find((i: any) => i.namespace === namespace);\n },\n indexes: {},\n }) as any,\n };\n\n this.events = new Events(this as any);\n\n config.discord = Array.isArray(config.discord)\n ? config.discord\n : [\n {\n token: config.discord.token,\n options: config.discord.options,\n namespace: \"default\",\n },\n ];\n\n this.data.clients.push(...(config.discord as any));\n for (let clientContext of this.data.clients) {\n let client = new Discord.Client({\n ...((clientContext.options || {}) as any),\n ...(config.sharding == \"hybrid\"\n ? {\n shards: Sharding.getInfo().SHARD_LIST,\n shardCount: Sharding.getInfo().TOTAL_SHARDS,\n }\n : {}),\n });\n clientContext.client = client as Discord.Client<true>;\n }\n\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\n if (\n this.data.clients.length !== 1 &&\n !(config.sharding && config.sharding === \"off\")\n )\n throw new Error(\"Sharding only supports 1 client.\");\n\n this.cluster =\n config.sharding == \"hybrid\"\n ? new Sharding.ClusterClient(this.data.clients[0].client)\n : undefined;\n this._loaded = false;\n this._hooked = false;\n }\n\n private async _hookListeners() {\n if (this._hooked) return;\n const self = this;\n this._hooked = true;\n this.data.unloaders.add(hookInteractionListeners(this as any));\n this.data.unloaders.add(hookEventListeners(this as any));\n if (typeof this.config.references.autoClear !== \"undefined\") {\n this.data.unloaders.add(\n (() => {\n let interval = setInterval(() => {\n this.data.refs.forEach(({ at, ttl }, key) => {\n if (\n Date.now() >\n at + (ttl || this.config.references.autoClear.ttl)\n ) {\n this.data.refs.delete(key);\n }\n });\n }, this.config.references.autoClear.check);\n return () => {\n clearInterval(interval);\n };\n })()\n );\n }\n if (typeof this.config.inlineListeners.autoClear !== \"undefined\") {\n this.data.unloaders.add(\n (() => {\n let interval = setInterval(() => {\n this.data.interactions.forEach((i, key) => {\n if (\n i.ttl &&\n (Date.now() >\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\n ) {\n this.data.interactions.delete(key);\n }\n });\n this.data.events.forEach((i, key) => {\n if (\n i.ttl &&\n (Date.now() >\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\n ) {\n this.data.events.delete(key);\n }\n });\n }, this.config.inlineListeners.autoClear.check);\n return () => {\n clearInterval(interval);\n };\n })()\n );\n }\n if (typeof this.config.messageCommands !== \"undefined\") {\n this.data.unloaders.add(\n (() => {\n const { client } = this.client();\n\n function onMessage(message: Discord.Message) {\n handleMessageCommands(self as any, message);\n }\n\n client.on(\"messageCreate\", onMessage);\n return () => {\n client.off(\"messageCreate\", onMessage);\n };\n })()\n );\n }\n }\n\n private async _unhookListeners() {\n if (!this._hooked) return;\n this._hooked = false;\n this.data.unloaders.forEach((f) => {\n f();\n });\n this.data.unloaders.clear();\n }\n\n private async _unregisterAll() {\n for await (const cb of this.data.registerUnloaders) {\n await cb();\n }\n this.data.events.clear();\n this.data.interactions.clear();\n this.data.interactionLocales.clear();\n this.data.locales.clear();\n this.data.registerUnloaders.clear();\n this.data.refs.clear();\n\n this.data.customEventNames.forEach((value) => {\n delete this.data.eventMap[value];\n });\n this.data.customEventNames.clear();\n }\n\n private async _registerAll(flags: string[] = []) {\n const self = this;\n const ChatInputOptions = new DBIChatInputOptions(self);\n\n const randomInlineId = () => `inline:${Math.random().toString(36).slice(2)}`;\n\n for await (const cb of this.data.registers) {\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\n let dbiChatInput = new DBIChatInput(self, cfg);\n if (self.data.interactions.has(dbiChatInput.name))\n throw new Error(\n `DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiChatInput.name, dbiChatInput);\n return dbiChatInput;\n };\n ChatInput = Object.assign(\n ChatInput,\n class {\n constructor(...args: any[]) {\n return ChatInput.apply(this, args as any);\n }\n }\n );\n\n let Event = function (cfg: TDBIEventOmitted<TNamespace>) {\n let dbiEvent = new DBIEvent(self as any, cfg);\n if (\n self.config.strict &&\n self.data.events.has(dbiEvent.id || dbiEvent.name)\n )\n throw new Error(\n `DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);\n return dbiEvent;\n };\n Event = Object.assign(\n Event,\n class {\n constructor(...args: any[]) {\n return Event.apply(this, args as any);\n }\n }\n );\n\n let createInlineEvent = function (cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">) {\n return Event({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id: randomInlineId() } as any);\n }\n\n let Button = function (cfg: TDBIButtonOmitted<TNamespace>) {\n let dbiButton = new DBIButton(self as any, cfg);\n if (self.config.strict && self.data.interactions.has(dbiButton.name))\n throw new Error(\n `DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiButton.name, dbiButton as any);\n return dbiButton;\n };\n Button = Object.assign(\n Button,\n class {\n constructor(...args: any[]) {\n return Button.apply(this, args as any);\n }\n }\n );\n\n let createInlineButton = function (cfg: Omit<TDBIButtonOmitted<TNamespace>, \"name\" | \"id\">) {\n let id = randomInlineId();\n return Button({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let StringSelectMenu = function (\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\n ) {\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiStringSelectMenu.name)\n )\n throw new Error(\n `DBIStringSelectMenu \"${dbiStringSelectMenu.name\n }\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiStringSelectMenu.name,\n dbiStringSelectMenu as any\n );\n return dbiStringSelectMenu;\n };\n StringSelectMenu = Object.assign(\n StringSelectMenu,\n class {\n constructor(...args: any[]) {\n return StringSelectMenu.apply(this, args as any);\n }\n }\n );\n\n let createInlineStringSelectMenu = function (cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\n let id = randomInlineId();\n return StringSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let UserSelectMenu = function (\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\n ) {\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiUserSelectMenu.name)\n )\n throw new Error(\n `DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiUserSelectMenu.name,\n dbiUserSelectMenu as any\n );\n return dbiUserSelectMenu;\n };\n UserSelectMenu = Object.assign(\n UserSelectMenu,\n class {\n constructor(...args: any[]) {\n return UserSelectMenu.apply(this, args as any);\n }\n }\n );\n\n let createInlineUserSelectMenu = function (cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\n let id = randomInlineId();\n return UserSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let RoleSelectMenu = function (\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\n ) {\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiRoleSelectMenu.name)\n )\n throw new Error(\n `DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiRoleSelectMenu.name,\n dbiRoleSelectMenu as any\n );\n return dbiRoleSelectMenu;\n };\n RoleSelectMenu = Object.assign(\n RoleSelectMenu,\n class {\n constructor(...args: any[]) {\n return RoleSelectMenu.apply(this, args as any);\n }\n }\n );\n\n let createInlineRoleSelectMenu = function (cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\n let id = randomInlineId();\n return RoleSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let ChannelSelectMenu = function (\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\n ) {\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiChannelSelectMenu.name)\n )\n throw new Error(\n `DBIChannelSelectMenu \"${dbiChannelSelectMenu.name\n }\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiChannelSelectMenu.name,\n dbiChannelSelectMenu as any\n );\n return dbiChannelSelectMenu;\n };\n ChannelSelectMenu = Object.assign(\n ChannelSelectMenu,\n class {\n constructor(...args: any[]) {\n return ChannelSelectMenu.apply(this, args as any);\n }\n }\n );\n\n let createInlineChannelSelectMenu = function (cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\n let id = randomInlineId();\n return ChannelSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let MentionableSelectMenu = function (\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\n ) {\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(\n self as any,\n cfg\n );\n if (\n self.config.strict &&\n self.data.interactions.has(dbiMentionableSelectMenu.name)\n )\n throw new Error(\n `DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name\n }\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiMentionableSelectMenu.name,\n dbiMentionableSelectMenu as any\n );\n return dbiMentionableSelectMenu;\n };\n MentionableSelectMenu = Object.assign(\n MentionableSelectMenu,\n class {\n constructor(...args: any[]) {\n return MentionableSelectMenu.apply(this, args as any);\n }\n }\n );\n\n let createInlineMentionableSelectMenu = function (cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\n let id = randomInlineId();\n return MentionableSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let MessageContextMenu = function (\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\n ) {\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiMessageContextMenu.name)\n )\n throw new Error(\n `DBIMessageContextMenu \"${dbiMessageContextMenu.name\n }\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiMessageContextMenu.name,\n dbiMessageContextMenu as any\n );\n return dbiMessageContextMenu;\n };\n MessageContextMenu = Object.assign(\n MessageContextMenu,\n class {\n constructor(...args: any[]) {\n return MessageContextMenu.apply(this, args as any);\n }\n }\n );\n\n let UserContextMenu = function (\n cfg: TDBIUserContextMenuOmitted<TNamespace>\n ) {\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactions.has(dbiUserContextMenu.name)\n )\n throw new Error(\n `DBIUserContextMenu \"${dbiUserContextMenu.name\n }\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\n dbiUserContextMenu.name,\n dbiUserContextMenu as any\n );\n return dbiUserContextMenu;\n };\n UserContextMenu = Object.assign(\n UserContextMenu,\n class {\n constructor(...args: any[]) {\n return UserContextMenu.apply(this, args as any);\n }\n }\n );\n\n let Modal = function (cfg: TDBIModalOmitted<TNamespace>) {\n let dbiModal = new DBIModal(self as any, cfg);\n if (self.config.strict && self.data.interactions.has(dbiModal.name))\n throw new Error(\n `DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type\n }\"!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiModal.name, dbiModal as any);\n return dbiModal;\n };\n Modal = Object.assign(\n Modal,\n class {\n constructor(...args: any[]) {\n return Modal.apply(this, args as any);\n }\n }\n );\n\n let createInlineModal = function (cfg: Omit<TDBIModalOmitted<TNamespace>, \"name\" | \"id\">) {\n let id = randomInlineId();\n return Modal({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\n }\n\n let Locale = function (cfg: TDBILocaleConstructor<TNamespace>) {\n let dbiLocale = new DBILocale(self as any, cfg);\n if (\n self.config.strict &&\n self.data.interactionLocales.has(dbiLocale.name)\n )\n throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\n if (self.data.locales.has(dbiLocale.name))\n dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.locales.set(dbiLocale.name, dbiLocale);\n return dbiLocale;\n };\n Locale = Object.assign(\n Locale,\n class {\n constructor(...args: any[]) {\n return Locale.apply(this, args as any);\n }\n }\n );\n\n let CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name])\n throw new Error(\n `DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`\n );\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\n self.data.customEventNames.add(dbiCustomEvent.name);\n return dbiCustomEvent;\n };\n CustomEvent = Object.assign(\n CustomEvent,\n class {\n constructor(...args: any[]) {\n return CustomEvent.apply(this, args as any);\n }\n }\n );\n\n let InteractionLocale = function (cfg: TDBIInteractionLocaleOmitted) {\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\n if (\n self.config.strict &&\n self.data.interactionLocales.has(dbiInteractionLocale.name)\n )\n throw new Error(\n `DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`\n );\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactionLocales.set(\n dbiInteractionLocale.name,\n dbiInteractionLocale\n );\n return dbiInteractionLocale;\n };\n InteractionLocale = Object.assign(\n InteractionLocale,\n class {\n constructor(...args: any[]) {\n return InteractionLocale.apply(this, args as any);\n }\n }\n );\n\n await cb({\n ChatInput,\n Event,\n ChatInputOptions,\n Locale,\n Button,\n StringSelectMenu,\n UserSelectMenu,\n RoleSelectMenu,\n ChannelSelectMenu,\n MentionableSelectMenu,\n MessageContextMenu,\n UserContextMenu,\n CustomEvent,\n Modal,\n InteractionLocale,\n createInlineButton,\n createInlineEvent,\n createInlineStringSelectMenu,\n createInlineUserSelectMenu,\n createInlineRoleSelectMenu,\n createInlineChannelSelectMenu,\n createInlineMentionableSelectMenu,\n createInlineModal,\n onUnload(cb: () => Promise<any> | any) {\n self.data.registerUnloaders.add(cb);\n },\n });\n }\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\n }\n\n emit<\n TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] &\n ClientEvents)\n >(\n name: TEventName,\n args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]\n ): void {\n this.data.clients.forEach((d) =>\n d.client.emit(name as any, { ...args, _DIRECT_: true } as any)\n );\n }\n\n /**\n * this.data.interactions.get(name)\n */\n interaction<\n TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]\n >(\n name: TInteractionName\n ): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\n return this.data.interactions.get(name as any) as any;\n }\n\n client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(\n name?: TClientName\n ): TDBIClientData<TNamespace> {\n return name ? this.data.clients.get(name) : this.data.clients.first();\n }\n /**\n * this.data.events.get(name)\n */\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(\n name: TEventName\n ): DBIEvent<TNamespace> {\n return this.data.events.get(name);\n }\n\n /**\n * this.data.locales.get(name)\n */\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(\n name: TLocaleName\n ): DBILocale<TNamespace> {\n return this.data.locales.get(name) as any;\n }\n\n /**\n * Shorthands for modifying `dbi.data.other`\n */\n get<K extends keyof TOtherData>(\n k: K,\n defaultValue?: TOtherData[K]\n ): TOtherData[K] {\n if (defaultValue && !this.has(k as any)) {\n this.set(k, defaultValue);\n return defaultValue;\n }\n return _.get(this.data.other, k);\n }\n\n /**\n * Shorthands for modifying `dbi.data.other`\n */\n set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any {\n this.data.other = _.set(this.data.other as any, k, v);\n }\n\n /**\n * Shorthands for modifying `dbi.data.other`\n */\n has(k: string): boolean {\n return _.has(this.data.other, k as any);\n }\n\n /**\n * Shorthands for modifying `dbi.data.other`\n */\n delete(k: string): boolean {\n return _.unset(this.data.other, k);\n }\n\n async login(): Promise<any> {\n await aaq.quickForEach(this.data.clients, async (clientContext) => {\n await clientContext.client.login(\n this.config.sharding == \"default\" ? null : clientContext.token\n );\n });\n this.events.trigger(\"clientsReady\", undefined, true);\n }\n\n async register(cb: (api: DBIRegisterAPI<TNamespace>) => void): Promise<any> {\n this.data.registers.add(cb);\n }\n\n async load(...flags: string[]): Promise<boolean> {\n if (this._loaded) return false;\n await this._registerAll(flags);\n await this._hookListeners();\n this._loaded = true;\n return true;\n }\n\n async unload(): Promise<boolean> {\n if (!this._loaded) return false;\n await this._unregisterAll();\n await this._unhookListeners();\n this._loaded = false;\n return true;\n }\n\n get loaded(): boolean {\n return this._loaded;\n }\n\n async publish(type: \"Global\", clear?: boolean): Promise<any>;\n async publish(type: \"Guild\", guildId: string, clear?: boolean): Promise<any>;\n\n async publish(...args: any[]) {\n let interactions = this.data.interactions.filter(\n (i) =>\n i.type == \"ChatInput\" ||\n i.type == \"MessageContextMenu\" ||\n i.type == \"UserContextMenu\"\n ) as any;\n switch (args[0]) {\n case \"Global\": {\n return await publishInteractions(\n this.data.clients,\n args[1] ? new Discord.Collection() : interactions,\n this.data.interactionLocales,\n args[0]\n );\n }\n case \"Guild\": {\n return await publishInteractions(\n this.data.clients,\n args[2] ? new Discord.Collection() : interactions,\n this.data.interactionLocales,\n args[0],\n args[1]\n );\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"DBI.js","sourceRoot":"","sources":["../src/DBI.ts"],"names":[],"mappings":";;;;AAAA,oEAAqD;AACrD,2DAGqC;AACrC,yEAAyE;AACzE,uEAAoE;AACpE,yCAAyE;AACzE,qDAAkD;AAClD,iFAA8E;AAC9E,qCAAkC;AAClC,iDAI8B;AAC9B,sDAAyE;AACzE,0EAG6C;AAC7C,yEAG0C;AAC1C,mEAGuC;AACvC,qEAAkE;AAClE,iFAA4C;AAC5C,oDAAsE;AACtE,0EAAoD;AACpD,4DAAuB;AACvB,uEAGyC;AAGzC,2DAGmC;AACnC,8EAAkC;AAClC,sEAG2C;AAC3C,oFAGkD;AAClD,4EAG8C;AAC9C,sEAG2C;AAC3C,2EAAwE;AAoMxE,MAAa,GAAG;IAId,SAAS,CAAa;IACtB,MAAM,CAAwB;IAC9B,IAAI,CAsBF;IACF,MAAM,CAAqB;IAC3B,OAAO,CAA0C;IACzC,OAAO,CAAU;IACjB,OAAO,CAAU;IACzB,YAAY,SAAqB,EAAE,MAAoD;QACrF,IAAI,CAAC,SAAS,GAAG,SAAgB,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,MAAM,CAAC,KAAK,GAAI,MAAM,CAAC,KAAa,IAAI,IAAI,yBAAW,EAAE,CAAC;QAC1D,MAAM,CAAC,QAAQ,GAAG;YAChB,MAAM,EAAE,CAAC,GAAG,EAAE;gBACZ,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;gBACzD,OAAO;oBACL,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;oBAClC,WAAW,EAAE,CAAC,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAyC,EAAE,EAAE,CAAC,CAAC,WAAW,IAAI,wBAAwB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAQ;iBAC7K,CAAA;YACH,CAAC,CAAC,EAAE;YACJ,wBAAwB,EAAE,EAAE;YAC5B,cAAc,EAAE,KAAK;YACrB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAC1B,eAAe,EAAE,CAAC,GAAG,EAAE;gBACrB,MAAM,iBAAiB,GAAG,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,iBAAiB,CAAA;gBAC7E,OAAO;oBACL,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,IAAI,EAAE,CAAC;oBAC3C,iBAAiB,EAAE,CAAC,OAAO,iBAAiB,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,iBAAiB,IAAI,YAAY,CAAC,CAAQ;iBACpI,CAAA;YACH,CAAC,CAAC,EAAE;SACL,CAAC;QAEF,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,CAAC;QACF,MAAM,CAAC,eAAe,GAAG;YACvB,SAAS,EAAE;gBACT,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE,MAAM;aACZ;YACD,GAAG,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;SAClC,CAAC;QAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YAC3B,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC;YAEzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAC9D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAE3C,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;YAE9E,MAAM,CAAC,eAAe,CAAC,QAAQ,GAAG,UAAU,CAAC;YAC7C,MAAM,CAAC,eAAe,CAAC,WAAW,GAAG;gBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI;oBAChC,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,KAAK;oBACT,CAAC,EAAE,IAAI;oBACP,CAAC,EAAE,KAAK;oBACR,GAAG,EAAE,IAAI;oBACT,GAAG,EAAE,KAAK;iBACX;aACF,CAAC;QACJ,CAAC;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,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;oBAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC;gBACD,MAAM,CAAC,IAAa;oBAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;oBACvD,CAAC;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,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAW,CAAC,CAAC;QAEtC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,OAAO;YAChB,CAAC,CAAC;gBACA;oBACE,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;oBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;oBAC/B,SAAS,EAAE,SAAS;iBACrB;aACF,CAAC;QAEJ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,OAAe,CAAC,CAAC;QACnD,KAAK,IAAI,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5C,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC;gBAC9B,GAAI,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAS;gBACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ;oBAC7B,CAAC,CAAC;wBACA,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,UAAU;wBACrC,UAAU,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,YAAY;qBAC5C;oBACD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,aAAa,CAAC,MAAM,GAAG,MAA8B,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5E,IACE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC;YAE/C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAEtD,IAAI,CAAC,OAAO;YACV,MAAM,CAAC,QAAQ,IAAI,QAAQ;gBACzB,CAAC,CAAC,IAAI,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,CAAC,CAAC,SAAS,CAAC;QAChB,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,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,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,IACE,IAAI,CAAC,GAAG,EAAE;4BACV,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAClD,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC7B,CAAC;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,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,IAAI,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBACxC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBAClC,IACE,CAAC,CAAC,GAAG;4BACL,CAAC,IAAI,CAAC,GAAG,EAAE;gCACT,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAC9D,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAChD,OAAO,GAAG,EAAE;oBACV,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EAAE,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CACrB,CAAC,GAAG,EAAE;gBACJ,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,CAAC;YACJ,CAAC,CAAC,EAAE,CACL,CAAC;QACJ,CAAC;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,EAAE;YAChC,CAAC,EAAE,CAAC;QACN,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACnD,MAAM,EAAE,EAAE,CAAC;QACb,CAAC;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,kBAAkB,CAAC,KAAK,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEvB,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,CAAC,QAAkB,EAAE;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC;QAClB,MAAM,gBAAgB,GAAG,IAAI,sCAAmB,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7E,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,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;oBAC/C,MAAM,IAAI,KAAK,CACb,iBAAiB,YAAY,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IACzG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;gBAChI,OAAO,YAAY,CAAC;YACtB,CAAC,CAAC;YACF,SAAS,GAAG,MAAM,CAAC,MAAM,CACvB,SAAS,EACT;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC5C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,KAAK,GAAG,UAAU,GAAiC;gBACrD,IAAI,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAC9C,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,mBAAmB,CAC7D,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACjI,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAA6C;gBAC7E,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,cAAc,EAAE,EAAS,CAAC,CAAC;YACrH,CAAC,CAAA;YAED,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;oBAClE,MAAM,IAAI,KAAK,CACb,cAAc,SAAS,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAChG,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAgB,CAAC,CAAC;gBACjI,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,kBAAkB,GAAG,UAAU,GAAuD;gBACxF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC9G,CAAC,CAAA;YAED,IAAI,gBAAgB,GAAG,UACrB,GAA4C;gBAE5C,IAAI,mBAAmB,GAAG,IAAI,sCAAmB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACpE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC;oBAEpD,MAAM,IAAI,KAAK,CACb,wBAAwB,mBAAmB,CAAC,IAC5C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAC9E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,mBAAmB,CAAC,IAAI,EACxB,mBAA0B,CAC3B,CAAC;gBACF,OAAO,mBAAmB,CAAC;YAC7B,CAAC,CAAC;YACF,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAC9B,gBAAgB,EAChB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACnD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,4BAA4B,GAAG,UAAU,GAAiE;gBAC5G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,gBAAgB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACxH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,cAAc,GAAG,UACnB,GAA0C;gBAE1C,IAAI,iBAAiB,GAAG,IAAI,kCAAiB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC;oBAElD,MAAM,IAAI,KAAK,CACb,sBAAsB,iBAAiB,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IACxH,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,iBAAiB,CAAC,IAAI,EACtB,iBAAwB,CACzB,CAAC;gBACF,OAAO,iBAAiB,CAAC;YAC3B,CAAC,CAAC;YACF,cAAc,GAAG,MAAM,CAAC,MAAM,CAC5B,cAAc,EACd;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACjD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,0BAA0B,GAAG,UAAU,GAA+D;gBACxG,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,cAAc,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACtH,CAAC,CAAA;YAED,IAAI,iBAAiB,GAAG,UACtB,GAA6C;gBAE7C,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACtE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAErD,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAC9C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAC/E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,oBAAoB,CAAC,IAAI,EACzB,oBAA2B,CAC5B,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,6BAA6B,GAAG,UAAU,GAAkE;gBAC9G,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,iBAAiB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YACzH,CAAC,CAAA;YAED,IAAI,qBAAqB,GAAG,UAC1B,GAAiD;gBAEjD,IAAI,wBAAwB,GAAG,IAAI,gDAAwB,CACzD,IAAW,EACX,GAAG,CACJ,CAAC;gBACF,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC;oBAEzD,MAAM,IAAI,KAAK,CACb,6BAA6B,wBAAwB,CAAC,IACtD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,IACnF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,wBAAwB,CAAC,IAAI,EAC7B,wBAA+B,CAChC,CAAC;gBACF,OAAO,wBAAwB,CAAC;YAClC,CAAC,CAAC;YACF,qBAAqB,GAAG,MAAM,CAAC,MAAM,CACnC,qBAAqB,EACrB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iCAAiC,GAAG,UAAU,GAAsE;gBACtH,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,qBAAqB,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7H,CAAC,CAAA;YAED,IAAI,kBAAkB,GAAG,UACvB,GAA8C;gBAE9C,IAAI,qBAAqB,GAAG,IAAI,0CAAqB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBACxE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAEtD,MAAM,IAAI,KAAK,CACb,0BAA0B,qBAAqB,CAAC,IAChD,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,IAChF,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,qBAAqB,CAAC,IAAI,EAC1B,qBAA4B,CAC7B,CAAC;gBACF,OAAO,qBAAqB,CAAC;YAC/B,CAAC,CAAC;YACF,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAChC,kBAAkB,EAClB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACrD,CAAC;aACF,CACF,CAAC;YAEF,IAAI,eAAe,GAAG,UACpB,GAA2C;gBAE3C,IAAI,kBAAkB,GAAG,IAAI,oCAAkB,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAClE,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC;oBAEnD,MAAM,IAAI,KAAK,CACb,uBAAuB,kBAAkB,CAAC,IAC1C,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAC7E,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAC5F,kBAAkB,CAAC,IAAI,EACvB,kBAAyB,CAC1B,CAAC;gBACF,OAAO,kBAAkB,CAAC;YAC5B,CAAC,CAAC;YACF,eAAe,GAAG,MAAM,CAAC,MAAM,CAC7B,eAAe,EACf;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAClD,CAAC;aACF,CACF,CAAC;YAEF,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;oBACjE,MAAM,IAAI,KAAK,CACb,aAAa,QAAQ,CAAC,IAAI,wBAAwB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAC7F,IAAI,CACL,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAe,CAAC,CAAC;gBAC/H,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;YACF,KAAK,GAAG,MAAM,CAAC,MAAM,CACnB,KAAK,EACL;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACxC,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAsD;gBACtF,IAAI,EAAE,GAAG,cAAc,EAAE,CAAC;gBAC1B,OAAO,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAS,CAAC,CAAC;YAC7G,CAAC,CAAA;YAED,IAAI,MAAM,GAAG,UAAU,GAAsC;gBAC3D,IAAI,SAAS,GAAG,IAAI,kBAAS,CAAC,IAAW,EAAE,GAAG,CAAC,CAAC;gBAChD,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBAEhD,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,CAAC,IAAI,mBAAmB,CAAC,CAAC;gBACnE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBACvC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACrH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CACpB,MAAM,EACN;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACzC,CAAC;aACF,CACF,CAAC;YAEF,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;oBAC/D,MAAM,IAAI,KAAK,CACb,mBAAmB,cAAc,CAAC,IAAI,mBAAmB,CAC1D,CAAC;gBACJ,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,CACzB,WAAW,EACX;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBAC9C,CAAC;aACF,CACF,CAAC;YAEF,IAAI,iBAAiB,GAAG,UAAU,GAAiC;gBACjE,IAAI,oBAAoB,GAAG,IAAI,wCAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC/D,IACE,IAAI,CAAC,MAAM,CAAC,MAAM;oBAClB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC;oBAE3D,MAAM,IAAI,KAAK,CACb,yBAAyB,oBAAoB,CAAC,IAAI,mBAAmB,CACtE,CAAC;gBACJ,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAClG,oBAAoB,CAAC,IAAI,EACzB,oBAAoB,CACrB,CAAC;gBACF,OAAO,oBAAoB,CAAC;YAC9B,CAAC,CAAC;YACF,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAC/B,iBAAiB,EACjB;gBACE,YAAY,GAAG,IAAW;oBACxB,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;gBACpD,CAAC;aACF,CACF,CAAC;YAEF,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,kBAAkB;gBAClB,iBAAiB;gBACjB,4BAA4B;gBAC5B,0BAA0B;gBAC1B,0BAA0B;gBAC1B,6BAA6B;gBAC7B,iCAAiC;gBACjC,iBAAiB;gBACjB,QAAQ,CAAC,EAA4B;oBACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;QACL,CAAC;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,CAIF,IAAgB,EAChB,IAA4E;QAE5E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAW,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAS,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAGT,IAAsB;QAEtB,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAW,CAAQ,CAAC;IACxD,CAAC;IAED,MAAM,CACJ,IAAkB;QAElB,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,CACH,IAAgB;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,IAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAQ,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,GAAG,CACD,CAAI,EACJ,YAA4B;QAE5B,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;YAC1B,OAAO,YAAY,CAAC;QACtB,CAAC;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,CAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACvD,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,CAAC,GAAG,KAAe;QAC3B,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/B,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,CAC9C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,IAAI,WAAW;YACrB,CAAC,CAAC,IAAI,IAAI,oBAAoB;YAC9B,CAAC,CAAC,IAAI,IAAI,iBAAiB,CACvB,CAAC;QACT,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,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;YACJ,CAAC;YACD,KAAK,OAAO,CAAC,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,EACP,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAh0BD,kBAg0BC","sourcesContent":["import Discord, { MessagePayload } from \"discord.js\";\r\nimport {\r\n DBIChatInput,\r\n TDBIChatInputOmitted,\r\n} from \"./types/ChatInput/ChatInput\";\r\nimport { DBIChatInputOptions } from \"./types/ChatInput/ChatInputOptions\";\r\nimport { publishInteractions } from \"./methods/publishInteractions\";\r\nimport { ClientEvents, DBIEvent, TDBIEventOmitted } from \"./types/Event\";\r\nimport { MemoryStore } from \"./utils/MemoryStore\";\r\nimport { hookInteractionListeners } from \"./methods/hookInteractionListeners\";\r\nimport { Events } from \"./Events\";\r\nimport {\r\n DBILocale,\r\n TDBILocaleConstructor,\r\n TDBILocaleString,\r\n} from \"./types/other/Locale\";\r\nimport { DBIButton, TDBIButtonOmitted } from \"./types/Components/Button\";\r\nimport {\r\n DBIStringSelectMenu,\r\n TDBIStringSelectMenuOmitted,\r\n} from \"./types/Components/StringSelectMenu\";\r\nimport {\r\n DBIMessageContextMenu,\r\n TDBIMessageContextMenuOmitted,\r\n} from \"./types/other/MessageContextMenu\";\r\nimport {\r\n DBIUserContextMenu,\r\n TDBIUserContextMenuOmitted,\r\n} from \"./types/other/UserContextMenu\";\r\nimport { hookEventListeners } from \"./methods/hookEventListeners\";\r\nimport eventMap from \"./data/eventMap.json\";\r\nimport { DBIModal, TDBIModalOmitted } from \"./types/Components/Modal\";\r\nimport * as Sharding from \"discord-hybrid-sharding\";\r\nimport _ from \"lodash\";\r\nimport {\r\n DBIInteractionLocale,\r\n TDBIInteractionLocaleOmitted,\r\n} from \"./types/other/InteractionLocale\";\r\nimport { TDBIInteractions } from \"./types/Interaction\";\r\nimport { NamespaceData, NamespaceEnums } from \"../generated/namespaceData\";\r\nimport {\r\n DBICustomEvent,\r\n TDBICustomEventOmitted,\r\n} from \"./types/other/CustomEvent\";\r\nimport aaq from \"async-and-quick\";\r\nimport {\r\n DBIUserSelectMenu,\r\n TDBIUserSelectMenuOmitted,\r\n} from \"./types/Components/UserSelectMenu\";\r\nimport {\r\n DBIMentionableSelectMenu,\r\n TDBIMentionableSelectMenuOmitted,\r\n} from \"./types/Components/MentionableSelectMenu\";\r\nimport {\r\n DBIChannelSelectMenu,\r\n TDBIChannelSelectMenuOmitted,\r\n} from \"./types/Components/ChannelSelectMenu\";\r\nimport {\r\n DBIRoleSelectMenu,\r\n TDBIRoleSelectMenuOmitted,\r\n} from \"./types/Components/RoleSelectMenu\";\r\nimport { handleMessageCommands } from \"./methods/handleMessageCommands\";\r\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\r\n\r\nexport interface DBIStore {\r\n get(key: string, defaultValue?: any): Promise<any>;\r\n set(key: string, value: any): Promise<void>;\r\n delete(key: string): Promise<void>;\r\n has(key: string): Promise<boolean>;\r\n}\r\n\r\nexport type TDBIClientData<TNamespace extends NamespaceEnums> = {\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"];\r\n token: string;\r\n options: Discord.ClientOptions;\r\n client: Discord.Client<true>;\r\n};\r\n\r\nexport type TDBIMessageCommandsActionCtx<TNamespace extends NamespaceEnums> = {\r\n interaction: FakeMessageInteraction;\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n}\r\n\r\nexport type TDBIMessageCommandsPrefixesCtx = {\r\n message: Discord.Message;\r\n};\r\n\r\nexport type TDBILocaleInvalidPathCtx<TNamespace extends NamespaceEnums> = {\r\n path: string;\r\n locale: DBILocale<TNamespace>;\r\n}\r\n\r\nexport interface DBIConfig<TNamespace extends NamespaceEnums> {\r\n discord: {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n defaults: {\r\n locale: {\r\n name: TDBILocaleString;\r\n invalidPath(ctx: TDBILocaleInvalidPathCtx<TNamespace>): string;\r\n };\r\n directMessages: boolean;\r\n defaultMemberPermissions: Discord.PermissionsString[];\r\n messageCommands: {\r\n deferReplyContent(ctx: TDBIMessageCommandsActionCtx<TNamespace>): MessagePayload | string | Promise<MessagePayload | string>;\r\n };\r\n };\r\n\r\n sharding: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store: DBIStore;\r\n\r\n references: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n }\r\n\r\n strict: boolean;\r\n messageCommands?: {\r\n prefixes(ctx: TDBIMessageCommandsPrefixesCtx): string[] | Promise<string[]>;\r\n typeAliases: {\r\n booleans: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIConfigConstructor<TNamespace extends NamespaceEnums, OtherData extends Record<string, any>> {\r\n discord:\r\n | {\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }\r\n | {\r\n namespace: string;\r\n token: string;\r\n options: Discord.ClientOptions;\r\n }[];\r\n\r\n defaults?: {\r\n locale?: {\r\n name?: TDBILocaleString;\r\n invalidPath?: string | ((ctx: TDBILocaleInvalidPathCtx<TNamespace>) => string);\r\n };\r\n directMessages?: boolean;\r\n defaultMemberPermissions?: Discord.PermissionsString[];\r\n messageCommands?: {\r\n deferReplyContent?: MessagePayload | string | ((ctx: TDBIMessageCommandsActionCtx<TNamespace>) => MessagePayload | string | Promise<MessagePayload | string>);\r\n };\r\n };\r\n\r\n sharding?: \"hybrid\" | \"default\" | \"off\";\r\n /**\r\n * Persist store. (Default to MemoryStore thats not persis tho.)\r\n */\r\n store?: DBIStore;\r\n\r\n references?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n inlineListeners?: {\r\n autoClear?: {\r\n check: number;\r\n ttl: number;\r\n };\r\n };\r\n\r\n data?: {\r\n other?: OtherData;\r\n refs?: Map<string, { at: number; value: any; ttl?: number }>;\r\n };\r\n\r\n strict?: boolean;\r\n\r\n messageCommands?: {\r\n prefixes: string[] | ((ctx: TDBIMessageCommandsPrefixesCtx) => string[] | Promise<string[]>);\r\n typeAliases?: {\r\n /**\r\n * Example: {\"yes\": true, \"no\": false}\r\n */\r\n booleans?: Record<string, boolean>;\r\n };\r\n };\r\n}\r\n\r\nexport interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {\r\n ChatInput(cfg: TDBIChatInputOmitted<TNamespace>): DBIChatInput<TNamespace>;\r\n ChatInputOptions: DBIChatInputOptions<TNamespace>;\r\n Event(cfg: TDBIEventOmitted<TNamespace>): DBIEvent<TNamespace>;\r\n Locale(cfg: TDBILocaleConstructor<TNamespace>): DBILocale<TNamespace>;\r\n Button(cfg: TDBIButtonOmitted<TNamespace>): DBIButton<TNamespace>;\r\n StringSelectMenu(\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ): DBIStringSelectMenu<TNamespace>;\r\n UserSelectMenu(\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ): DBIUserSelectMenu<TNamespace>;\r\n RoleSelectMenu(\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n ChannelSelectMenu(\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n MentionableSelectMenu(\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n MessageContextMenu(\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ): DBIMessageContextMenu<TNamespace>;\r\n UserContextMenu(\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ): DBIUserContextMenu<TNamespace>;\r\n InteractionLocale(cfg: TDBIInteractionLocaleOmitted): DBIInteractionLocale;\r\n Modal(cfg: TDBIModalOmitted<TNamespace>): DBIModal<TNamespace>;\r\n CustomEvent<T extends keyof NamespaceData[TNamespace][\"customEvents\"]>(\r\n cfg: TDBICustomEventOmitted<TNamespace, T>\r\n ): DBICustomEvent<TNamespace, T>;\r\n\r\n createInlineEvent(cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">): DBIEvent<TNamespace>;\r\n createInlineButton(cfg: Omit<TDBIButtonOmitted<TNamespace>, \"id\" | \"name\">): DBIButton<TNamespace>;\r\n createInlineStringSelectMenu(\r\n cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIStringSelectMenu<TNamespace>;\r\n createInlineUserSelectMenu(\r\n cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIUserSelectMenu<TNamespace>;\r\n createInlineRoleSelectMenu(\r\n cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIRoleSelectMenu<TNamespace>;\r\n createInlineChannelSelectMenu(\r\n cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIChannelSelectMenu<TNamespace>;\r\n createInlineMentionableSelectMenu(\r\n cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">\r\n ): DBIMentionableSelectMenu<TNamespace>;\r\n createInlineModal(cfg: Omit<TDBIModalOmitted<TNamespace>, \"id\" | \"name\">): DBIModal<TNamespace>;\r\n\r\n onUnload(cb: () => Promise<any> | any): any;\r\n}\r\n\r\nexport class DBI<\r\n TNamespace extends NamespaceEnums,\r\n TOtherData extends Record<string, any> = Record<string, any>\r\n> {\r\n namespace: TNamespace;\r\n config: DBIConfig<TNamespace>;\r\n data: {\r\n interactions: Discord.Collection<string, TDBIInteractions<TNamespace>>;\r\n events: Discord.Collection<string, DBIEvent<TNamespace>>;\r\n locales: Discord.Collection<string, DBILocale<TNamespace>>;\r\n interactionLocales: Discord.Collection<string, DBIInteractionLocale>;\r\n other: TOtherData;\r\n eventMap: Record<string, string[] | { [k: string]: string }>;\r\n customEventNames: Set<string>;\r\n unloaders: Set<() => void>;\r\n registers: Set<(...args: any[]) => any>;\r\n registerUnloaders: Set<(...args: any[]) => any>;\r\n refs: Map<string, { at: number; value: any; ttl?: number }>;\r\n clients: TDBIClientData<TNamespace>[] & {\r\n next(key?: string): TDBIClientData<TNamespace>;\r\n random(): TDBIClientData<TNamespace>;\r\n random(size: number): TDBIClientData<TNamespace>[];\r\n first(): TDBIClientData<TNamespace>;\r\n get(\r\n namespace: NamespaceData[TNamespace][\"clientNamespaces\"]\r\n ): TDBIClientData<TNamespace>;\r\n indexes: Record<string, number>;\r\n };\r\n };\r\n events: Events<TNamespace>;\r\n cluster?: Sharding.ClusterClient<Discord.Client>;\r\n private _loaded: boolean;\r\n private _hooked: boolean;\r\n constructor(namespace: TNamespace, config: DBIConfigConstructor<TNamespace, TOtherData>) {\r\n this.namespace = namespace as any;\r\n const self = this;\r\n\r\n config.store = (config.store as any) || new MemoryStore();\r\n config.defaults = {\r\n locale: (() => {\r\n const invalidPath = config.defaults?.locale?.invalidPath;\r\n return {\r\n ...(config.defaults?.locale || {}),\r\n invalidPath: (typeof invalidPath === \"function\" ? invalidPath : (ctx: TDBILocaleInvalidPathCtx<TNamespace>) => (invalidPath || `Invalid locale path \"${ctx.path}\".`)) as any\r\n }\r\n })(),\r\n defaultMemberPermissions: [],\r\n directMessages: false,\r\n ...(config.defaults || {}),\r\n messageCommands: (() => {\r\n const deferReplyContent = config.defaults?.messageCommands?.deferReplyContent\r\n return {\r\n ...(config.defaults?.messageCommands || {}),\r\n deferReplyContent: (typeof deferReplyContent === \"function\" ? deferReplyContent : () => (deferReplyContent || \"Loading...\")) as any\r\n }\r\n })(),\r\n };\r\n\r\n config.sharding = config.sharding ?? \"off\";\r\n config.strict = config.strict ?? true;\r\n config.references = {\r\n autoClear: undefined,\r\n ...(config.references || {}),\r\n };\r\n config.inlineListeners = {\r\n autoClear: {\r\n check: 60000,\r\n ttl: 900000,\r\n },\r\n ...(config.inlineListeners || {}),\r\n };\r\n\r\n if (config.messageCommands) {\r\n const { prefixes, typeAliases } = config.messageCommands;\r\n\r\n if (Array.isArray(prefixes) && config.strict && !prefixes.length)\r\n throw new Error(\"No prefixes provided.\");\r\n\r\n const prefixesFn = typeof prefixes === \"function\" ? prefixes : () => prefixes;\r\n\r\n config.messageCommands.prefixes = prefixesFn;\r\n config.messageCommands.typeAliases = {\r\n booleans: typeAliases.booleans ?? {\r\n true: true,\r\n false: false,\r\n yes: true,\r\n no: false,\r\n y: true,\r\n n: false,\r\n \"1\": true,\r\n \"0\": false,\r\n },\r\n };\r\n }\r\n\r\n // @ts-ignore\r\n this.config = config;\r\n\r\n this.data = {\r\n interactions: new Discord.Collection(),\r\n events: new Discord.Collection(),\r\n locales: new Discord.Collection(),\r\n interactionLocales: new Discord.Collection(),\r\n other: (config.data?.other as any) ?? ({} as TOtherData),\r\n eventMap: { ...eventMap },\r\n customEventNames: new Set(),\r\n unloaders: new Set(),\r\n registers: new Set(),\r\n registerUnloaders: new Set(),\r\n refs: config.data?.refs ?? new Map(),\r\n clients: Object.assign([], {\r\n next(key = \"global\") {\r\n this.indexes[key] = ((this.indexes[key] ?? -1) + 1) % this.length;\r\n return this[this.indexes[key]];\r\n },\r\n random(size?: number) {\r\n if (typeof size === \"number\") {\r\n return this.sort(() => Math.random() - 0.5).slice(0, size);\r\n } else {\r\n return this[Math.floor(Math.random() * this.length)];\r\n }\r\n },\r\n first() {\r\n return this[0];\r\n },\r\n get(namespace: string) {\r\n return this.find((i: any) => i.namespace === namespace);\r\n },\r\n indexes: {},\r\n }) as any,\r\n };\r\n\r\n this.events = new Events(this as any);\r\n\r\n config.discord = Array.isArray(config.discord)\r\n ? config.discord\r\n : [\r\n {\r\n token: config.discord.token,\r\n options: config.discord.options,\r\n namespace: \"default\",\r\n },\r\n ];\r\n\r\n this.data.clients.push(...(config.discord as any));\r\n for (let clientContext of this.data.clients) {\r\n let client = new Discord.Client({\r\n ...((clientContext.options || {}) as any),\r\n ...(config.sharding == \"hybrid\"\r\n ? {\r\n shards: Sharding.getInfo().SHARD_LIST,\r\n shardCount: Sharding.getInfo().TOTAL_SHARDS,\r\n }\r\n : {}),\r\n });\r\n clientContext.client = client as Discord.Client<true>;\r\n }\r\n\r\n if (this.data.clients.length === 0) throw new Error(\"No clients provided.\");\r\n if (\r\n this.data.clients.length !== 1 &&\r\n !(config.sharding && config.sharding === \"off\")\r\n )\r\n throw new Error(\"Sharding only supports 1 client.\");\r\n\r\n this.cluster =\r\n config.sharding == \"hybrid\"\r\n ? new Sharding.ClusterClient(this.data.clients[0].client)\r\n : undefined;\r\n this._loaded = false;\r\n this._hooked = false;\r\n }\r\n\r\n private async _hookListeners() {\r\n if (this._hooked) return;\r\n const self = this;\r\n this._hooked = true;\r\n this.data.unloaders.add(hookInteractionListeners(this as any));\r\n this.data.unloaders.add(hookEventListeners(this as any));\r\n if (typeof this.config.references.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.refs.forEach(({ at, ttl }, key) => {\r\n if (\r\n Date.now() >\r\n at + (ttl || this.config.references.autoClear.ttl)\r\n ) {\r\n this.data.refs.delete(key);\r\n }\r\n });\r\n }, this.config.references.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.inlineListeners.autoClear !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n let interval = setInterval(() => {\r\n this.data.interactions.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.interactions.delete(key);\r\n }\r\n });\r\n this.data.events.forEach((i, key) => {\r\n if (\r\n i.ttl &&\r\n (Date.now() >\r\n i.at + (i.ttl || this.config.inlineListeners.autoClear.ttl))\r\n ) {\r\n this.data.events.delete(key);\r\n }\r\n });\r\n }, this.config.inlineListeners.autoClear.check);\r\n return () => {\r\n clearInterval(interval);\r\n };\r\n })()\r\n );\r\n }\r\n if (typeof this.config.messageCommands !== \"undefined\") {\r\n this.data.unloaders.add(\r\n (() => {\r\n const { client } = this.client();\r\n\r\n function onMessage(message: Discord.Message) {\r\n handleMessageCommands(self as any, message);\r\n }\r\n\r\n client.on(\"messageCreate\", onMessage);\r\n return () => {\r\n client.off(\"messageCreate\", onMessage);\r\n };\r\n })()\r\n );\r\n }\r\n }\r\n\r\n private async _unhookListeners() {\r\n if (!this._hooked) return;\r\n this._hooked = false;\r\n this.data.unloaders.forEach((f) => {\r\n f();\r\n });\r\n this.data.unloaders.clear();\r\n }\r\n\r\n private async _unregisterAll() {\r\n for await (const cb of this.data.registerUnloaders) {\r\n await cb();\r\n }\r\n this.data.events.clear();\r\n this.data.interactions.clear();\r\n this.data.interactionLocales.clear();\r\n this.data.locales.clear();\r\n this.data.registerUnloaders.clear();\r\n this.data.refs.clear();\r\n\r\n this.data.customEventNames.forEach((value) => {\r\n delete this.data.eventMap[value];\r\n });\r\n this.data.customEventNames.clear();\r\n }\r\n\r\n private async _registerAll(flags: string[] = []) {\r\n const self = this;\r\n const ChatInputOptions = new DBIChatInputOptions(self);\r\n\r\n const randomInlineId = () => `inline:${Math.random().toString(36).slice(2)}`;\r\n\r\n for await (const cb of this.data.registers) {\r\n let ChatInput = function (cfg: DBIChatInput<TNamespace>) {\r\n let dbiChatInput = new DBIChatInput(self, cfg);\r\n if (self.data.interactions.has(dbiChatInput.name))\r\n throw new Error(\r\n `DBIChatInput \"${dbiChatInput.name}\" already loaded as \"${self.data.interactions.get(dbiChatInput.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiChatInput.name, dbiChatInput);\r\n return dbiChatInput;\r\n };\r\n ChatInput = Object.assign(\r\n ChatInput,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChatInput.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Event = function (cfg: TDBIEventOmitted<TNamespace>) {\r\n let dbiEvent = new DBIEvent(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.events.has(dbiEvent.id || dbiEvent.name)\r\n )\r\n throw new Error(\r\n `DBIEvent \"${dbiEvent.id || dbiEvent.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.events.set(dbiEvent.id || dbiEvent.name, dbiEvent);\r\n return dbiEvent;\r\n };\r\n Event = Object.assign(\r\n Event,\r\n class {\r\n constructor(...args: any[]) {\r\n return Event.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineEvent = function (cfg: Omit<TDBIEventOmitted<TNamespace>, \"id\">) {\r\n return Event({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id: randomInlineId() } as any);\r\n }\r\n\r\n let Button = function (cfg: TDBIButtonOmitted<TNamespace>) {\r\n let dbiButton = new DBIButton(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiButton.name))\r\n throw new Error(\r\n `DBIButton \"${dbiButton.name}\" already loaded as \"${self.data.interactions.get(dbiButton.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiButton.name, dbiButton as any);\r\n return dbiButton;\r\n };\r\n Button = Object.assign(\r\n Button,\r\n class {\r\n constructor(...args: any[]) {\r\n return Button.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineButton = function (cfg: Omit<TDBIButtonOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Button({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let StringSelectMenu = function (\r\n cfg: TDBIStringSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiStringSelectMenu = new DBIStringSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiStringSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIStringSelectMenu \"${dbiStringSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiStringSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiStringSelectMenu.name,\r\n dbiStringSelectMenu as any\r\n );\r\n return dbiStringSelectMenu;\r\n };\r\n StringSelectMenu = Object.assign(\r\n StringSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return StringSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineStringSelectMenu = function (cfg: Omit<TDBIStringSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return StringSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let UserSelectMenu = function (\r\n cfg: TDBIUserSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserSelectMenu = new DBIUserSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserSelectMenu \"${dbiUserSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiUserSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserSelectMenu.name,\r\n dbiUserSelectMenu as any\r\n );\r\n return dbiUserSelectMenu;\r\n };\r\n UserSelectMenu = Object.assign(\r\n UserSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineUserSelectMenu = function (cfg: Omit<TDBIUserSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return UserSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let RoleSelectMenu = function (\r\n cfg: TDBIRoleSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiRoleSelectMenu = new DBIRoleSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiRoleSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIRoleSelectMenu \"${dbiRoleSelectMenu.name}\" already loaded as \"${self.data.interactions.get(dbiRoleSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiRoleSelectMenu.name,\r\n dbiRoleSelectMenu as any\r\n );\r\n return dbiRoleSelectMenu;\r\n };\r\n RoleSelectMenu = Object.assign(\r\n RoleSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return RoleSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineRoleSelectMenu = function (cfg: Omit<TDBIRoleSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return RoleSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let ChannelSelectMenu = function (\r\n cfg: TDBIChannelSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiChannelSelectMenu = new DBIChannelSelectMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiChannelSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIChannelSelectMenu \"${dbiChannelSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiChannelSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiChannelSelectMenu.name,\r\n dbiChannelSelectMenu as any\r\n );\r\n return dbiChannelSelectMenu;\r\n };\r\n ChannelSelectMenu = Object.assign(\r\n ChannelSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return ChannelSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineChannelSelectMenu = function (cfg: Omit<TDBIChannelSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return ChannelSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MentionableSelectMenu = function (\r\n cfg: TDBIMentionableSelectMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMentionableSelectMenu = new DBIMentionableSelectMenu(\r\n self as any,\r\n cfg\r\n );\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMentionableSelectMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMentionableSelectMenu \"${dbiMentionableSelectMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMentionableSelectMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMentionableSelectMenu.name,\r\n dbiMentionableSelectMenu as any\r\n );\r\n return dbiMentionableSelectMenu;\r\n };\r\n MentionableSelectMenu = Object.assign(\r\n MentionableSelectMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MentionableSelectMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineMentionableSelectMenu = function (cfg: Omit<TDBIMentionableSelectMenuOmitted<TNamespace>, \"id\" | \"name\">) {\r\n let id = randomInlineId();\r\n return MentionableSelectMenu({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let MessageContextMenu = function (\r\n cfg: TDBIMessageContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiMessageContextMenu = new DBIMessageContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiMessageContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIMessageContextMenu \"${dbiMessageContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiMessageContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiMessageContextMenu.name,\r\n dbiMessageContextMenu as any\r\n );\r\n return dbiMessageContextMenu;\r\n };\r\n MessageContextMenu = Object.assign(\r\n MessageContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return MessageContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let UserContextMenu = function (\r\n cfg: TDBIUserContextMenuOmitted<TNamespace>\r\n ) {\r\n let dbiUserContextMenu = new DBIUserContextMenu(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactions.has(dbiUserContextMenu.name)\r\n )\r\n throw new Error(\r\n `DBIUserContextMenu \"${dbiUserContextMenu.name\r\n }\" already loaded as \"${self.data.interactions.get(dbiUserContextMenu.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(\r\n dbiUserContextMenu.name,\r\n dbiUserContextMenu as any\r\n );\r\n return dbiUserContextMenu;\r\n };\r\n UserContextMenu = Object.assign(\r\n UserContextMenu,\r\n class {\r\n constructor(...args: any[]) {\r\n return UserContextMenu.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let Modal = function (cfg: TDBIModalOmitted<TNamespace>) {\r\n let dbiModal = new DBIModal(self as any, cfg);\r\n if (self.config.strict && self.data.interactions.has(dbiModal.name))\r\n throw new Error(\r\n `DBIModal \"${dbiModal.name}\" already loaded as \"${self.data.interactions.get(dbiModal.name)?.type\r\n }\"!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactions.set(dbiModal.name, dbiModal as any);\r\n return dbiModal;\r\n };\r\n Modal = Object.assign(\r\n Modal,\r\n class {\r\n constructor(...args: any[]) {\r\n return Modal.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let createInlineModal = function (cfg: Omit<TDBIModalOmitted<TNamespace>, \"name\" | \"id\">) {\r\n let id = randomInlineId();\r\n return Modal({ ...cfg, ttl: cfg?.ttl || self.config.inlineListeners.autoClear?.ttl, id, name: id } as any);\r\n }\r\n\r\n let Locale = function (cfg: TDBILocaleConstructor<TNamespace>) {\r\n let dbiLocale = new DBILocale(self as any, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiLocale.name)\r\n )\r\n throw new Error(`DBILocale \"${dbiLocale.name}\" already loaded!`);\r\n if (self.data.locales.has(dbiLocale.name))\r\n dbiLocale.mergeLocale(self.data.locales.get(dbiLocale.name));\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.locales.set(dbiLocale.name, dbiLocale);\r\n return dbiLocale;\r\n };\r\n Locale = Object.assign(\r\n Locale,\r\n class {\r\n constructor(...args: any[]) {\r\n return Locale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let CustomEvent = function (cfg: TDBICustomEventOmitted<TNamespace>) {\r\n let dbiCustomEvent = new DBICustomEvent(self, cfg) as any;\r\n if (self.config.strict && self.data.eventMap[dbiCustomEvent.name])\r\n throw new Error(\r\n `DBICustomEvent \"${dbiCustomEvent.name}\" already loaded!`\r\n );\r\n self.data.eventMap[dbiCustomEvent.name] = dbiCustomEvent.map;\r\n self.data.customEventNames.add(dbiCustomEvent.name);\r\n return dbiCustomEvent;\r\n };\r\n CustomEvent = Object.assign(\r\n CustomEvent,\r\n class {\r\n constructor(...args: any[]) {\r\n return CustomEvent.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n let InteractionLocale = function (cfg: TDBIInteractionLocaleOmitted) {\r\n let dbiInteractionLocale = new DBIInteractionLocale(self, cfg);\r\n if (\r\n self.config.strict &&\r\n self.data.interactionLocales.has(dbiInteractionLocale.name)\r\n )\r\n throw new Error(\r\n `DBIInteractionLocale \"${dbiInteractionLocale.name}\" already loaded!`\r\n );\r\n if (!cfg.flag || flags.includes(\"all\") || flags.includes(cfg.flag)) self.data.interactionLocales.set(\r\n dbiInteractionLocale.name,\r\n dbiInteractionLocale\r\n );\r\n return dbiInteractionLocale;\r\n };\r\n InteractionLocale = Object.assign(\r\n InteractionLocale,\r\n class {\r\n constructor(...args: any[]) {\r\n return InteractionLocale.apply(this, args as any);\r\n }\r\n }\r\n );\r\n\r\n await cb({\r\n ChatInput,\r\n Event,\r\n ChatInputOptions,\r\n Locale,\r\n Button,\r\n StringSelectMenu,\r\n UserSelectMenu,\r\n RoleSelectMenu,\r\n ChannelSelectMenu,\r\n MentionableSelectMenu,\r\n MessageContextMenu,\r\n UserContextMenu,\r\n CustomEvent,\r\n Modal,\r\n InteractionLocale,\r\n createInlineButton,\r\n createInlineEvent,\r\n createInlineStringSelectMenu,\r\n createInlineUserSelectMenu,\r\n createInlineRoleSelectMenu,\r\n createInlineChannelSelectMenu,\r\n createInlineMentionableSelectMenu,\r\n createInlineModal,\r\n onUnload(cb: () => Promise<any> | any) {\r\n self.data.registerUnloaders.add(cb);\r\n },\r\n });\r\n }\r\n self.data.interactions.sort((a, b) => b.name.length - a.name.length);\r\n }\r\n\r\n emit<\r\n TEventName extends keyof (NamespaceData[TNamespace][\"customEvents\"] &\r\n ClientEvents)\r\n >(\r\n name: TEventName,\r\n args: (NamespaceData[TNamespace][\"customEvents\"] & ClientEvents)[TEventName]\r\n ): void {\r\n this.data.clients.forEach((d) =>\r\n d.client.emit(name as any, { ...args, _DIRECT_: true } as any)\r\n );\r\n }\r\n\r\n /**\r\n * this.data.interactions.get(name)\r\n */\r\n interaction<\r\n TInteractionName extends keyof NamespaceData[TNamespace][\"interactionMapping\"]\r\n >(\r\n name: TInteractionName\r\n ): NamespaceData[TNamespace][\"interactionMapping\"][TInteractionName] {\r\n return this.data.interactions.get(name as any) as any;\r\n }\r\n\r\n client<TClientName extends NamespaceData[TNamespace][\"clientNamespaces\"]>(\r\n name?: TClientName\r\n ): TDBIClientData<TNamespace> {\r\n return name ? this.data.clients.get(name) : this.data.clients.first();\r\n }\r\n /**\r\n * this.data.events.get(name)\r\n */\r\n event<TEventName extends NamespaceData[TNamespace][\"eventNames\"]>(\r\n name: TEventName\r\n ): DBIEvent<TNamespace> {\r\n return this.data.events.get(name);\r\n }\r\n\r\n /**\r\n * this.data.locales.get(name)\r\n */\r\n locale<TLocaleName extends NamespaceData[TNamespace][\"localeNames\"]>(\r\n name: TLocaleName\r\n ): DBILocale<TNamespace> {\r\n return this.data.locales.get(name) as any;\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n get<K extends keyof TOtherData>(\r\n k: K,\r\n defaultValue?: TOtherData[K]\r\n ): TOtherData[K] {\r\n if (defaultValue && !this.has(k as any)) {\r\n this.set(k, defaultValue);\r\n return defaultValue;\r\n }\r\n return _.get(this.data.other, k);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n set<K extends keyof TOtherData>(k: K, v: TOtherData[K]): any {\r\n this.data.other = _.set(this.data.other as any, k, v);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n has(k: string): boolean {\r\n return _.has(this.data.other, k as any);\r\n }\r\n\r\n /**\r\n * Shorthands for modifying `dbi.data.other`\r\n */\r\n delete(k: string): boolean {\r\n return _.unset(this.data.other, k);\r\n }\r\n\r\n async login(): Promise<any> {\r\n await aaq.quickForEach(this.data.clients, async (clientContext) => {\r\n await clientContext.client.login(\r\n this.config.sharding == \"default\" ? null : clientContext.token\r\n );\r\n });\r\n this.events.trigger(\"clientsReady\", undefined, true);\r\n }\r\n\r\n async register(cb: (api: DBIRegisterAPI<TNamespace>) => void): Promise<any> {\r\n this.data.registers.add(cb);\r\n }\r\n\r\n async load(...flags: string[]): Promise<boolean> {\r\n if (this._loaded) return false;\r\n await this._registerAll(flags);\r\n await this._hookListeners();\r\n this._loaded = true;\r\n return true;\r\n }\r\n\r\n async unload(): Promise<boolean> {\r\n if (!this._loaded) return false;\r\n await this._unregisterAll();\r\n await this._unhookListeners();\r\n this._loaded = false;\r\n return true;\r\n }\r\n\r\n get loaded(): boolean {\r\n return this._loaded;\r\n }\r\n\r\n async publish(type: \"Global\", clear?: boolean): Promise<any>;\r\n async publish(type: \"Guild\", guildId: string, clear?: boolean): Promise<any>;\r\n\r\n async publish(...args: any[]) {\r\n let interactions = this.data.interactions.filter(\r\n (i) =>\r\n i.type == \"ChatInput\" ||\r\n i.type == \"MessageContextMenu\" ||\r\n i.type == \"UserContextMenu\"\r\n ) as any;\r\n switch (args[0]) {\r\n case \"Global\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[1] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0]\r\n );\r\n }\r\n case \"Guild\": {\r\n return await publishInteractions(\r\n this.data.clients,\r\n args[2] ? new Discord.Collection() : interactions,\r\n this.data.interactionLocales,\r\n args[0],\r\n args[1]\r\n );\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAiCA,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,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAU,EAAE,cAAc,GAAG,KAAK;QACpE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA8FD,EAAE,CACA,SAAyB,EACzB,OAAkD,EAClD,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAE5C,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,CAAC;YACjB,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,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,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,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CACD,SAAyB,EACzB,OAAkD;QAElD,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;AA3JD,wBA2JC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\nimport { DBI } from \"./DBI\";\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\nimport { DBIChatInput } from \"./types/ChatInput/ChatInput\";\nimport { TDBIValueName } from \"./types/ChatInput/ChatInputOptions\";\nimport { ClientEvents, DBIEvent } from \"./types/Event\";\nimport { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from \"./types/Interaction\";\nimport { FakeMessageInteraction } from \"./types/other/FakeMessageInteraction\";\nimport { DBILocale } from \"./types/other/Locale\";\nimport Discord, { PermissionsString } from \"discord.js\";\n\nexport type TDBIEventNames =\n | \"beforeInteraction\"\n | \"afterInteraction\"\n | \"interactionRateLimit\"\n | \"beforeEvent\"\n | \"afterEvent\"\n | \"interactionError\"\n | \"eventError\"\n | \"messageCommandArgumentError\"\n | \"messageCommandDirectMessageUsageError\"\n | \"messageCommandDefaultMemberPermissionsError\"\n | \"clientsReady\";\n\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: {\n other: Record<string, any>;\n locale?: { guild: DBILocale<TNamespace> };\n eventName: K;\n dbiEvent: DBIEvent<TNamespace>;\n } & (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])[K];\n}[keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])];\n\nexport class Events<TNamespace extends NamespaceEnums> {\n DBI: DBI<TNamespace>;\n handlers: Record<string, Array<(data: any) => boolean | Promise<boolean>>>;\n constructor(DBI: DBI<TNamespace>) {\n this.DBI = DBI;\n\n this.handlers = {\n beforeInteraction: [],\n afterInteraction: [],\n interactionRateLimit: [],\n beforeEvent: [],\n afterEvent: [],\n interactionError: [],\n eventError: [],\n };\n }\n\n async trigger(name: TDBIEventNames, data?: any, ignoreResponse = false): Promise<boolean> {\n let handlers = this.handlers[name];\n if (!handlers?.length) return true;\n for (let i = 0; i < handlers.length; i++) {\n const handler = handlers[i];\n if (!ignoreResponse) {\n let returned = await handler(data);\n if (returned !== true) return false;\n } else {\n handler(data);\n }\n }\n return true;\n }\n\n on(\n eventName: \"clientsReady\",\n handler: () => any,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"beforeInteraction\" | \"afterInteraction\",\n handler: (\n data: IDBIBaseExecuteCtx<TNamespace>\n ) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"interactionError\",\n handler: (\n data: IDBIBaseExecuteCtx<TNamespace> & { error: any }\n ) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"beforeEvent\" | \"afterEvent\",\n handler: (\n data: TDBIEventHandlerCtx<TNamespace>\n ) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"eventError\",\n handler: (\n data: TDBIEventHandlerCtx<TNamespace> & {\n error: any;\n dbiEvent: DBIEvent<TNamespace>;\n }\n ) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"interactionRateLimit\",\n handler: (\n data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & {\n rateLimit: { type: TDBIRateLimitTypes; duration: number; at: number };\n }\n ) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"messageCommandArgumentError\",\n handler: (data: {\n message: Discord.Message;\n interaction: FakeMessageInteraction;\n error: {\n type: TDBIMessageCommandArgumentErrorTypes;\n option: any;\n index: number;\n extra?: any;\n };\n value: any;\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\n dbiInteraction: DBIChatInput<TNamespace>;\n }) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"messageCommandDefaultMemberPermissionsError\",\n handler: (data: {\n message: Discord.Message;\n interaction: FakeMessageInteraction;\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\n permissions: PermissionsString[];\n dbiInteraction: DBIChatInput<TNamespace>;\n }) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: \"messageCommandDirectMessageUsageError\",\n handler: (data: {\n message: Discord.Message;\n interaction: FakeMessageInteraction;\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\n dbiInteraction: DBIChatInput<TNamespace>;\n }) => Promise<boolean> | boolean,\n options?: { once: boolean }\n ): () => any;\n\n on(\n eventName: TDBIEventNames,\n handler: (data: any) => Promise<boolean> | boolean,\n options: { once: boolean } = { once: false }\n ): () => any {\n if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];\n if (options.once) {\n let h = (data) => {\n this.off(eventName, h);\n return handler(data);\n };\n this.on(eventName as any, h as any, { once: false });\n return () => {\n this.off(eventName, h);\n };\n } else {\n this.handlers[eventName].push(handler);\n return () => {\n this.off(eventName, handler);\n };\n }\n }\n\n off(\n eventName: TDBIEventNames,\n handler: (data: any) => Promise<boolean> | boolean\n ) {\n let l = this.handlers[eventName];\n if (!l) return [];\n return l.splice(l.indexOf(handler), 1);\n }\n}\n"]}
1
+ {"version":3,"file":"Events.js","sourceRoot":"","sources":["../src/Events.ts"],"names":[],"mappings":";;;AAiCA,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,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAoB,EAAE,IAAU,EAAE,cAAc,GAAG,KAAK;QACpE,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,IAAI,QAAQ,KAAK,IAAI;oBAAE,OAAO,KAAK,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IA8FD,EAAE,CACA,SAAyB,EACzB,OAAkD,EAClD,UAA6B,EAAE,IAAI,EAAE,KAAK,EAAE;QAE5C,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,CAAC;YACjB,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,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,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,CAAC;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CACD,SAAyB,EACzB,OAAkD;QAElD,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;AA3JD,wBA2JC","sourcesContent":["import { NamespaceEnums, NamespaceData } from \"../generated/namespaceData\";\r\nimport { DBI } from \"./DBI\";\r\nimport { TDBIMessageCommandArgumentErrorTypes } from \"./methods/handleMessageCommands\";\r\nimport { DBIChatInput } from \"./types/ChatInput/ChatInput\";\r\nimport { TDBIValueName } from \"./types/ChatInput/ChatInputOptions\";\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, { PermissionsString } from \"discord.js\";\r\n\r\nexport type TDBIEventNames =\r\n | \"beforeInteraction\"\r\n | \"afterInteraction\"\r\n | \"interactionRateLimit\"\r\n | \"beforeEvent\"\r\n | \"afterEvent\"\r\n | \"interactionError\"\r\n | \"eventError\"\r\n | \"messageCommandArgumentError\"\r\n | \"messageCommandDirectMessageUsageError\"\r\n | \"messageCommandDefaultMemberPermissionsError\"\r\n | \"clientsReady\";\r\n\r\nexport type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {\r\n [K in keyof (ClientEvents & NamespaceData[TNamespace][\"customEvents\"])]: {\r\n other: Record<string, any>;\r\n locale?: { guild: DBILocale<TNamespace> };\r\n eventName: K;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n } & (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, ignoreResponse = false): Promise<boolean> {\r\n let handlers = this.handlers[name];\r\n if (!handlers?.length) return true;\r\n for (let i = 0; i < handlers.length; i++) {\r\n const handler = handlers[i];\r\n if (!ignoreResponse) {\r\n let returned = await handler(data);\r\n if (returned !== true) return false;\r\n } else {\r\n handler(data);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n on(\r\n eventName: \"clientsReady\",\r\n handler: () => any,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeInteraction\" | \"afterInteraction\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionError\",\r\n handler: (\r\n data: IDBIBaseExecuteCtx<TNamespace> & { error: any }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"beforeEvent\" | \"afterEvent\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace>\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"eventError\",\r\n handler: (\r\n data: TDBIEventHandlerCtx<TNamespace> & {\r\n error: any;\r\n dbiEvent: DBIEvent<TNamespace>;\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"interactionRateLimit\",\r\n handler: (\r\n data: Omit<IDBIBaseExecuteCtx<TNamespace>, \"other\" | \"setRateLimit\"> & {\r\n rateLimit: { type: TDBIRateLimitTypes; duration: number; at: number };\r\n }\r\n ) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandArgumentError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n error: {\r\n type: TDBIMessageCommandArgumentErrorTypes;\r\n option: any;\r\n index: number;\r\n extra?: any;\r\n };\r\n value: any;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDefaultMemberPermissionsError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n permissions: PermissionsString[];\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: \"messageCommandDirectMessageUsageError\",\r\n handler: (data: {\r\n message: Discord.Message;\r\n interaction: FakeMessageInteraction;\r\n locale: { guild?: DBILocale<TNamespace>; user: DBILocale<TNamespace> };\r\n dbiInteraction: DBIChatInput<TNamespace>;\r\n }) => Promise<boolean> | boolean,\r\n options?: { once: boolean }\r\n ): () => any;\r\n\r\n on(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean,\r\n options: { once: boolean } = { once: false }\r\n ): () => 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(\r\n eventName: TDBIEventNames,\r\n handler: (data: any) => Promise<boolean> | boolean\r\n ) {\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}\r\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAYA,8BAEC;;AAbD,+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,CAAkG,SAAqB,EAAE,GAAiD;IACjM,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;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\";\nimport { DBI, DBIConfigConstructor } from \"./DBI\";\nimport { recursiveImport } from \"./utils/recursiveImport\";\nexport { MemoryStore } from \"./utils/MemoryStore\";\n\nimport path from \"path\";\nimport { parseCustomId, buildCustomId } from \"./utils/customId\";\nimport { unloadModule } from \"./utils/unloadModule\";\nimport { recursiveUnload } from \"./utils/recursiveUnload\";\n\nexport const generatedPath = path.resolve(__dirname, \"../generated\");\n\nexport function createDBI<TNamespace extends NamespaceEnums, TOtherType extends Record<string, any> = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor<TNamespace, TOtherType>): DBI<TNamespace, TOtherType> {\n return new DBI<TNamespace, TOtherType>(namespace, cfg);\n};\n\nexport const Utils = {\n parseCustomId,\n buildCustomId,\n recursiveImport,\n unloadModule,\n recursiveUnload\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAYA,8BAEC;;AAbD,+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,CAAkG,SAAqB,EAAE,GAAiD;IACjM,OAAO,IAAI,SAAG,CAAyB,SAAS,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC;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 extends Record<string, any> = Record<string, any>>(namespace: TNamespace, cfg: DBIConfigConstructor<TNamespace, TOtherType>): 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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApplicationCommandType,\n ChatInputCommandInteraction,\n Message,\n MessagePayload,\n ApplicationCommandOptionType,\n} from \"discord.js\";\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\nimport { DBI } from \"../DBI\";\nimport { FakeMessageInteraction } from \"../types/other/FakeMessageInteraction\";\nimport { TDBILocaleString } from \"../types/other/Locale\";\n\nconst INTEGER_REGEX = /^-?\\d+$/;\nconst NUMBER_REGEX = /^-?\\d+(?:\\.\\d+)?$/;\n\nexport type TDBIMessageCommandArgumentErrorTypes =\n | \"MissingRequiredOption\"\n | \"MinLength\"\n | \"MaxLength\"\n | \"InvalidChoice\"\n | \"InvalidInteger\"\n | \"MinInteger\"\n | \"MaxInteger\"\n | \"InvalidNumber\"\n | \"MinNumber\"\n | \"MaxNumber\"\n | \"InvalidBoolean\"\n | \"InvalidUser\"\n | \"InvalidChannel\"\n | \"InvalidRole\"\n | \"InvalidMentionable\"\n | \"InvalidCompleteChoice\";\n\nexport async function handleMessageCommands(\n dbi: DBI<NamespaceEnums>,\n message: Message\n) {\n const chatInputs = dbi.data.interactions.filter(\n (i) => i.type === \"ChatInput\"\n );\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\n if (!prefixes?.length) return;\n const content = message.content;\n const usedPrefix = prefixes.find((p) => content.startsWith(p));\n if (!usedPrefix) return;\n const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);\n const contentLower = contentWithoutPrefix.toLowerCase();\n\n let locale: string =\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\n (dbi.config.defaults.locale as any);\n let usedAlias: string | undefined;\n let chatInput = chatInputs.find((i) => {\n let found = contentLower.startsWith(i.name);\n if (found) return true;\n let alias = i.other?.messageCommand?.aliases?.find((a) =>\n contentLower.startsWith(a)\n );\n if (alias) {\n usedAlias = alias;\n return true;\n }\n return false;\n });\n let commandName = usedAlias ?? chatInput?.name;\n\n if (!chatInput) {\n fLoop: for (const [localeInterName, localeData] of dbi.data\n .interactionLocales) {\n for (const [localeName, translation] of Object.entries(\n localeData.data || {}\n )) {\n if (contentLower.startsWith(translation.name)) {\n commandName = translation.name;\n locale = localeName;\n chatInput = chatInputs.find((i) => i.name === localeData.name);\n break fLoop;\n }\n }\n }\n }\n\n if (!chatInput) return;\n\n const interaction = new FakeMessageInteraction(\n dbi,\n message,\n chatInput as any,\n locale,\n commandName,\n usedPrefix\n );\n\n const builtLocale = {\n user:\n dbi.data.locales.get(interaction.locale) ||\n dbi.data.locales.get(dbi.config.defaults.locale.name),\n guild: message.guild?.preferredLocale\n ? dbi.data.locales.get(\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\n ) || dbi.data.locales.get(dbi.config.defaults.locale.name)\n : null,\n };\n\n const { defaultMemberPermissions, directMessages } = chatInput as any;\n\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\n const res = await dbi.events.trigger(\n \"messageCommandDirectMessageUsageError\", {\n interaction,\n message,\n locale: builtLocale,\n dbiInteraction: chatInput\n });\n if (!res) return;\n }\n\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\n const perms = message.member.permissions.toArray();\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\n const res = await dbi.events.trigger(\n \"messageCommandDefaultMemberPermissionsError\", {\n interaction,\n message,\n locale: builtLocale,\n dbiInteraction: chatInput,\n permissions: defaultMemberPermissions\n });\n if (!res) return;\n }\n }\n\n if (chatInput.options.length) {\n let errorType: TDBIMessageCommandArgumentErrorTypes;\n let lastOption: any;\n let lastValue: any;\n let lastExtra: any;\n let lastIndex: number;\n for (let i = 0; i < chatInput.options.length; i++) {\n lastIndex = i;\n const option: any = interaction.dbiChatInputOptions[i];\n const value = interaction.parsedArgs.get(option.name)?.value;\n\n lastOption = option;\n lastValue = value;\n\n switch (option.type) {\n case ApplicationCommandOptionType.String: {\n if (!option.required && !value) break;\n\n if (option.autocomplete && option.onComplete) {\n let choices = await option.onComplete({\n interaction,\n value,\n });\n if (!choices.length)\n choices = await option.onComplete({\n interaction,\n value: \"\",\n });\n if (choices.length > 20)\n throw new Error(\"Autocomplete returned more than 20 choices.\");\n lastExtra = choices;\n if (!choices.find((c) => c.name === value || c.value === value)) {\n if (value) {\n errorType = \"InvalidCompleteChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n option._choices = choices;\n }\n\n if (option.choices) {\n const localeData = dbi.data.interactionLocales.get(\n chatInput.name\n )?.data;\n const choicesLocaleData =\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\n ?.choices;\n if (\n !option.choices.find(\n (c) =>\n c.name === value ||\n c.value === value ||\n (choicesLocaleData?.[c.value] &&\n choicesLocaleData?.[c.value] === value)\n )\n ) {\n lastExtra = option.choices.map((c) => ({\n name: choicesLocaleData?.[c.value] ?? c.name,\n value: c.value,\n }));\n if (value) {\n errorType = \"InvalidChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n break;\n }\n\n if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n if (option.minLength && value?.length < option.minLength) {\n errorType = \"MinLength\";\n break;\n }\n if (option.maxLength && value?.length > option.maxLength) {\n errorType = \"MaxLength\";\n break;\n }\n\n break;\n }\n case ApplicationCommandOptionType.Integer: {\n if (!option.required && !value) break;\n\n let parsedInt = parseInt(value);\n\n if (option.autocomplete && option.onComplete) {\n let choices = await option.onComplete({\n interaction,\n value,\n });\n if (!choices.length)\n choices = await option.onComplete({\n interaction,\n value: \"\",\n });\n if (choices.length > 20)\n throw new Error(\"Autocomplete returned more than 20 choices.\");\n lastExtra = choices;\n if (\n !choices.find((c) => c.value === parsedInt || c.name === value)\n ) {\n if (value) {\n errorType = \"InvalidCompleteChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n option._choices = choices;\n break;\n }\n\n if (option.choices) {\n const localeData = dbi.data.interactionLocales.get(\n chatInput.name\n )?.data;\n const choicesLocaleData =\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\n ?.choices;\n if (\n !option.choices.find(\n (c) =>\n c.value === parsedInt ||\n c.name === value ||\n (choicesLocaleData?.[c.value] &&\n choicesLocaleData?.[c.value] === value)\n )\n ) {\n lastExtra = option.choices.map((c) => ({\n name: choicesLocaleData?.[c.value] ?? c.name,\n value: c.value,\n }));\n if (value) {\n errorType = \"InvalidChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n break;\n }\n\n if (!INTEGER_REGEX.test(value)) {\n errorType = \"InvalidInteger\";\n break;\n }\n\n if (option.minValue && parsedInt < option.minValue) {\n errorType = \"MinInteger\";\n break;\n }\n\n if (option.maxValue && parsedInt > option.maxValue) {\n errorType = \"MaxInteger\";\n break;\n }\n\n break;\n }\n case ApplicationCommandOptionType.Number: {\n if (!option.required && !value) break;\n\n let parsedFloat = parseFloat(value);\n\n if (option.autocomplete && option.onComplete) {\n let choices = await option.onComplete({\n interaction,\n value,\n });\n if (!choices.length)\n choices = await option.onComplete({\n interaction,\n value: \"\",\n });\n if (choices.length > 20)\n throw new Error(\"Autocomplete returned more than 20 choices.\");\n lastExtra = choices;\n if (\n !choices.find((c) => c.value === parsedFloat || c.name === value)\n ) {\n if (value) {\n errorType = \"InvalidCompleteChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n option._choices = choices;\n break;\n }\n\n if (option.choices) {\n const localeData = dbi.data.interactionLocales.get(\n chatInput.name\n )?.data;\n const choicesLocaleData =\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\n ?.choices;\n if (\n !option.choices.find(\n (c) =>\n c.value === parsedFloat ||\n c.name === value ||\n (choicesLocaleData?.[c.value] &&\n choicesLocaleData?.[c.value] === value)\n )\n ) {\n lastExtra = option.choices.map((c) => ({\n name: choicesLocaleData?.[c.value] ?? c.name,\n value: c.value,\n }));\n if (value) {\n errorType = \"InvalidChoice\";\n break;\n } else if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n break;\n }\n }\n break;\n }\n\n if (!NUMBER_REGEX.test(value)) {\n errorType = \"InvalidNumber\";\n break;\n }\n\n if (option.minValue && parsedFloat < option.minValue) {\n errorType = \"MinNumber\";\n break;\n }\n\n if (option.maxValue && parsedFloat > option.maxValue) {\n errorType = \"MaxNumber\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.Boolean: {\n let boolKeys = Object.keys(\n dbi.config.messageCommands.typeAliases.booleans\n );\n if (option.required && !boolKeys.includes(value?.toLowerCase?.())) {\n errorType = \"InvalidBoolean\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.User: {\n await message.client.users\n .fetch(interaction.options.getUserId(option.name))\n .catch(() => { });\n if (option.required && !interaction.options.getUser(option.name)) {\n errorType = \"InvalidUser\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.Channel: {\n await message.client.channels\n .fetch(interaction.options.getChannelId(option.name))\n .catch(() => { });\n if (\n option.required &&\n !interaction.options.getChannel(\n option.name,\n null,\n option.channelTypes\n )\n ) {\n errorType = \"InvalidChannel\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.Role: {\n await message.guild.roles\n .fetch(interaction.options.getRoleId(option.name))\n .catch(() => { });\n if (option.required && !interaction.options.getRole(option.name)) {\n errorType = \"InvalidRole\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.Mentionable: {\n let mentionableId = interaction.options.getMentionableId(option.name);\n await message.guild.roles.fetch(mentionableId).catch(() => { });\n await message.client.channels.fetch(mentionableId).catch(() => { });\n await message.client.users.fetch(mentionableId).catch(() => { });\n if (\n option.required &&\n !interaction.options.getMentionable(option.name)\n ) {\n errorType = \"InvalidMentionable\";\n break;\n }\n break;\n }\n case ApplicationCommandOptionType.Attachment: {\n if (option.required && !value) {\n errorType = \"MissingRequiredOption\";\n }\n break;\n }\n }\n\n if (errorType) {\n break;\n } else {\n lastExtra = null;\n lastIndex = null;\n lastOption = null;\n lastValue = null;\n }\n }\n\n if (errorType) {\n let res = await dbi.events.trigger(\"messageCommandArgumentError\", {\n interaction,\n message,\n locale: builtLocale,\n error: {\n type: errorType,\n option: lastOption,\n extra: lastExtra,\n index: lastIndex,\n },\n value: lastValue,\n dbiInteraction: chatInput,\n });\n if (!res) return;\n }\n }\n\n interaction.init();\n dbi.data.clients.first().client.emit(\"interactionCreate\", interaction as any);\n}\n"]}
1
+ {"version":3,"file":"handleMessageCommands.js","sourceRoot":"","sources":["../../src/methods/handleMessageCommands.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n ApplicationCommandType,\r\n ChatInputCommandInteraction,\r\n Message,\r\n MessagePayload,\r\n ApplicationCommandOptionType,\r\n} 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 =\r\n | \"MissingRequiredOption\"\r\n | \"MinLength\"\r\n | \"MaxLength\"\r\n | \"InvalidChoice\"\r\n | \"InvalidInteger\"\r\n | \"MinInteger\"\r\n | \"MaxInteger\"\r\n | \"InvalidNumber\"\r\n | \"MinNumber\"\r\n | \"MaxNumber\"\r\n | \"InvalidBoolean\"\r\n | \"InvalidUser\"\r\n | \"InvalidChannel\"\r\n | \"InvalidRole\"\r\n | \"InvalidMentionable\"\r\n | \"InvalidCompleteChoice\";\r\n\r\nexport async function handleMessageCommands(\r\n dbi: DBI<NamespaceEnums>,\r\n message: Message\r\n) {\r\n const chatInputs = dbi.data.interactions.filter(\r\n (i) => i.type === \"ChatInput\"\r\n );\r\n const prefixes = await dbi.config.messageCommands.prefixes({ message });\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 =\r\n message.guild.preferredLocale?.split(\"-\")?.at(0) ||\r\n (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) =>\r\n contentLower.startsWith(a)\r\n );\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\r\n .interactionLocales) {\r\n for (const [localeName, translation] of Object.entries(\r\n localeData.data || {}\r\n )) {\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(\r\n dbi,\r\n message,\r\n chatInput as any,\r\n locale,\r\n commandName,\r\n usedPrefix\r\n );\r\n\r\n const builtLocale = {\r\n user:\r\n dbi.data.locales.get(interaction.locale) ||\r\n dbi.data.locales.get(dbi.config.defaults.locale.name),\r\n guild: message.guild?.preferredLocale\r\n ? dbi.data.locales.get(\r\n message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || dbi.data.locales.get(dbi.config.defaults.locale.name)\r\n : null,\r\n };\r\n\r\n const { defaultMemberPermissions, directMessages } = chatInput as any;\r\n\r\n if (typeof directMessages !== \"undefined\" && !directMessages && !message.guild) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDirectMessageUsageError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput\r\n });\r\n if (!res) return;\r\n }\r\n\r\n if (Array.isArray(defaultMemberPermissions) && message.guild && message.member) {\r\n const perms = message.member.permissions.toArray();\r\n if (!defaultMemberPermissions.every((p) => perms.includes(p))) {\r\n const res = await dbi.events.trigger(\r\n \"messageCommandDefaultMemberPermissionsError\", {\r\n interaction,\r\n message,\r\n locale: builtLocale,\r\n dbiInteraction: chatInput,\r\n permissions: defaultMemberPermissions\r\n });\r\n if (!res) return;\r\n }\r\n }\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.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)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n 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(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.name === value ||\r\n c.value === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\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.required && !value) {\r\n errorType = \"MissingRequiredOption\";\r\n break;\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)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedInt || c.name === value)\r\n ) {\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(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedInt ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\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)\r\n choices = await option.onComplete({\r\n interaction,\r\n value: \"\",\r\n });\r\n if (choices.length > 20)\r\n throw new Error(\"Autocomplete returned more than 20 choices.\");\r\n lastExtra = choices;\r\n if (\r\n !choices.find((c) => c.value === parsedFloat || c.name === value)\r\n ) {\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(\r\n chatInput.name\r\n )?.data;\r\n const choicesLocaleData =\r\n localeData?.[locale as TDBILocaleString]?.options?.[option.name]\r\n ?.choices;\r\n if (\r\n !option.choices.find(\r\n (c) =>\r\n c.value === parsedFloat ||\r\n c.name === value ||\r\n (choicesLocaleData?.[c.value] &&\r\n choicesLocaleData?.[c.value] === value)\r\n )\r\n ) {\r\n lastExtra = option.choices.map((c) => ({\r\n name: choicesLocaleData?.[c.value] ?? c.name,\r\n value: c.value,\r\n }));\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(\r\n dbi.config.messageCommands.typeAliases.booleans\r\n );\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\r\n .fetch(interaction.options.getUserId(option.name))\r\n .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\r\n .fetch(interaction.options.getChannelId(option.name))\r\n .catch(() => { });\r\n if (\r\n option.required &&\r\n !interaction.options.getChannel(\r\n option.name,\r\n null,\r\n option.channelTypes\r\n )\r\n ) {\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\r\n .fetch(interaction.options.getRoleId(option.name))\r\n .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 (\r\n option.required &&\r\n !interaction.options.getMentionable(option.name)\r\n ) {\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: builtLocale,\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 dbiInteraction: chatInput,\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}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hookEventListeners.js","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { Guild } from \"discord.js\";\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\nimport { DBI } from \"../DBI\";\nimport { TDBIEventOrder } from \"../types/Event\";\n\nexport function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {\n\n function getClientByEvent(value) {\n return value.triggerType == \"OneByOne\"\n ? dbi.data.clients.next(`Event:${value.name}`)\n : value.triggerType == \"OneByOneGlobal\"\n ? dbi.data.clients.next(\"Event\")\n : value.triggerType == \"Random\"\n ? dbi.data.clients.random()\n : dbi.data.clients.first();\n }\n\n async function handle(eventName: string, ...args: any[]) {\n if (!dbi.data.eventMap[eventName]) return;\n\n let isDirect = args?.[0]?._DIRECT_ ?? false;\n if (isDirect) delete args[0]._DIRECT_;\n\n let ctxArgs =\n isDirect\n ? args[0]\n : (dbi.data.eventMap[eventName] as any).reduce((all, current, index) => {\n all[current] = args[index];\n return all;\n }, {});\n\n let other = {};\n\n let guildLocaleName = args.reduce((all, current) => {\n if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.(\"-\")?.[0];\n if (current instanceof Guild) return current?.preferredLocale?.split?.(\"-\")?.[0];\n return all;\n }, null);\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale.name)) : null;\n\n let locale = guildLocale ? { guild: guildLocale } : null;\n\n\n let awaitedEvents = [];\n let unAwaitedEvents = [];\n for (let i = 0; i < dbi.data.events.size; i++) {\n const value = dbi.data.events.at(i);\n if (value.name == eventName) {\n if (value.ordered?.await) {\n awaitedEvents.push(value);\n } else {\n unAwaitedEvents.push(value);\n }\n }\n }\n\n let arg = { eventName, ...ctxArgs, other, locale };\n\n for (let i = 0; i < unAwaitedEvents.length; i++) {\n const value = unAwaitedEvents[i];\n\n if (value?.disabled) continue;\n\n if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));\n\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\n\n if (dbi.config.strict) {\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\n } else {\n try {\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\n });\n } catch (error) {\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\n }\n }\n if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));\n }\n\n for (let i = 0; i < awaitedEvents.length; i++) {\n const value = awaitedEvents[i];\n\n if (value?.disabled) continue;\n\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\n\n if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));\n\n if (dbi.config.strict) {\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\n } else {\n try {\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\n });\n } catch (error) {\n await dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\n }\n }\n if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));\n }\n\n dbi.events.trigger(\"afterEvent\", arg)\n }\n\n let firstClient = dbi.data.clients.first().client;\n let originalEmit = firstClient.emit;\n\n firstClient.emit = function (eventName, ...args) {\n handle(eventName, ...args);\n return originalEmit.call(this, eventName, ...args);\n }\n\n return () => {\n firstClient.emit = originalEmit;\n }\n}"]}
1
+ {"version":3,"file":"hookEventListeners.js","sourceRoot":"","sources":["../../src/methods/hookEventListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { Guild } from \"discord.js\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\nimport { DBI } from \"../DBI\";\r\nimport { TDBIEventOrder } from \"../types/Event\";\r\n\r\nexport function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n\r\n function getClientByEvent(value) {\r\n return value.triggerType == \"OneByOne\"\r\n ? dbi.data.clients.next(`Event:${value.name}`)\r\n : value.triggerType == \"OneByOneGlobal\"\r\n ? dbi.data.clients.next(\"Event\")\r\n : value.triggerType == \"Random\"\r\n ? dbi.data.clients.random()\r\n : dbi.data.clients.first();\r\n }\r\n\r\n async function handle(eventName: string, ...args: any[]) {\r\n if (!dbi.data.eventMap[eventName]) return;\r\n\r\n let isDirect = args?.[0]?._DIRECT_ ?? false;\r\n if (isDirect) delete args[0]._DIRECT_;\r\n\r\n let ctxArgs =\r\n isDirect\r\n ? args[0]\r\n : (dbi.data.eventMap[eventName] as any).reduce((all, current, index) => {\r\n all[current] = args[index];\r\n return all;\r\n }, {});\r\n\r\n let other = {};\r\n\r\n let guildLocaleName = args.reduce((all, current) => {\r\n if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.(\"-\")?.[0];\r\n if (current instanceof Guild) return current?.preferredLocale?.split?.(\"-\")?.[0];\r\n return all;\r\n }, null);\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale.name)) : null;\r\n\r\n let locale = guildLocale ? { guild: guildLocale } : null;\r\n\r\n\r\n let awaitedEvents = [];\r\n let unAwaitedEvents = [];\r\n for (let i = 0; i < dbi.data.events.size; i++) {\r\n const value = dbi.data.events.at(i);\r\n if (value.name == eventName) {\r\n if (value.ordered?.await) {\r\n awaitedEvents.push(value);\r\n } else {\r\n unAwaitedEvents.push(value);\r\n }\r\n }\r\n }\r\n\r\n let arg = { eventName, ...ctxArgs, other, locale };\r\n\r\n for (let i = 0; i < unAwaitedEvents.length; i++) {\r\n const value = unAwaitedEvents[i];\r\n\r\n if (value?.disabled) continue;\r\n\r\n if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));\r\n\r\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\r\n\r\n if (dbi.config.strict) {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n });\r\n } catch (error) {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n }\r\n }\r\n if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));\r\n }\r\n\r\n for (let i = 0; i < awaitedEvents.length; i++) {\r\n const value = awaitedEvents[i];\r\n\r\n if (value?.disabled) continue;\r\n\r\n if (!(await dbi.events.trigger(\"beforeEvent\", { ...arg, dbiEvent: value }))) continue;\r\n\r\n if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));\r\n\r\n if (dbi.config.strict) {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });\r\n } else {\r\n try {\r\n await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {\r\n dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n });\r\n } catch (error) {\r\n await dbi.events.trigger(\"eventError\", { ...arg, error, dbiEvent: value });\r\n }\r\n }\r\n if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));\r\n }\r\n\r\n dbi.events.trigger(\"afterEvent\", arg)\r\n }\r\n\r\n let firstClient = dbi.data.clients.first().client;\r\n let originalEmit = firstClient.emit;\r\n\r\n firstClient.emit = function (eventName, ...args) {\r\n handle(eventName, ...args);\r\n return originalEmit.call(this, eventName, ...args);\r\n }\r\n\r\n return () => {\r\n firstClient.emit = originalEmit;\r\n }\r\n}"]}