@mostfeatured/dbi 0.1.21 → 0.1.22

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.
@@ -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\";\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)) : 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}"]}
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}"]}
@@ -44,14 +44,14 @@ function hookInteractionListeners(dbi) {
44
44
  let userLocaleName = inter.locale.split("-")[0];
45
45
  let userLocale = dbi.data.locales.has(userLocaleName)
46
46
  ? dbi.data.locales.get(userLocaleName)
47
- : dbi.data.locales.get(dbi.config.defaults.locale);
47
+ : dbi.data.locales.get(dbi.config.defaults.locale.name);
48
48
  let guildLocaleName = inter.guild
49
49
  ? inter.guild.preferredLocale.split("-")[0]
50
50
  : null;
51
51
  let guildLocale = guildLocaleName
52
52
  ? dbi.data.locales.has(guildLocaleName)
53
53
  ? dbi.data.locales.get(guildLocaleName)
54
- : dbi.data.locales.get(dbi.config.defaults.locale)
54
+ : dbi.data.locales.get(dbi.config.defaults.locale.name)
55
55
  : null;
56
56
  let locale = {
57
57
  user: userLocale,
@@ -1 +1 @@
1
- {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord, { CommandInteractionOption } from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\n\r\nconst componentTypes = [\r\n \"Button\",\r\n \"StringSelectMenu\",\r\n \"UserSelectMenu\",\r\n \"RoleSelectMenu\",\r\n \"ChannelSelectMenu\",\r\n \"MentionableSelectMenu\",\r\n \"Modal\",\r\n];\r\n\r\nexport function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n async function handle(inter: Discord.Interaction<\"cached\">) {\r\n const dbiInter =\r\n (inter as any).dbiChatInput ??\r\n dbi.data.interactions.find((i) => {\r\n let isUsesCustomId =\r\n inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit();\r\n let parsedId = isUsesCustomId\r\n ? parseCustomId(dbi, (inter as any).customId)\r\n : null;\r\n return (\r\n (i.type == \"ChatInput\" &&\r\n (inter.isChatInputCommand() || inter.isAutocomplete()) &&\r\n i.name ==\r\n [\r\n inter.commandName,\r\n inter.options.getSubcommandGroup(false),\r\n inter.options.getSubcommand(false),\r\n ]\r\n .filter((i) => !!i)\r\n .join(\" \")) ||\r\n ((i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\") &&\r\n (inter.isMessageContextMenuCommand() ||\r\n inter.isUserContextMenuCommand()) &&\r\n inter.commandName == i.name) ||\r\n (componentTypes.includes(i.type) &&\r\n isUsesCustomId &&\r\n parsedId?.name == i.name)\r\n );\r\n });\r\n\r\n if (!dbiInter) return;\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName)\r\n ? dbi.data.locales.get(userLocaleName)\r\n : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild\r\n ? inter.guild.preferredLocale.split(\"-\")[0]\r\n : null;\r\n let guildLocale = guildLocaleName\r\n ? dbi.data.locales.has(guildLocaleName)\r\n ? dbi.data.locales.get(guildLocaleName)\r\n : dbi.data.locales.get(dbi.config.defaults.locale)\r\n : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale,\r\n };\r\n\r\n let data =\r\n inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit()\r\n ? parseCustomId(dbi, inter.customId).data\r\n : undefined;\r\n\r\n let other = {};\r\n\r\n if (\r\n !(await dbi.events.trigger(\"beforeInteraction\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n setRateLimit,\r\n data,\r\n other,\r\n dbiInteraction: dbiInter,\r\n }))\r\n )\r\n return;\r\n\r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(\r\n (i) => i.name == focussed.name\r\n );\r\n if (option?.validate) {\r\n const res = await option.validate({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n step: \"Autocomplete\",\r\n });\r\n\r\n if (Array.isArray(res) && res.length > 0) {\r\n await inter.respond(res);\r\n return;\r\n }\r\n\r\n if (res !== true) return;\r\n }\r\n\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let rateLimitKeyMap = {\r\n User: `${dbiInter.name}_${inter.user.id}`,\r\n Channel: `${dbiInter.name}_${inter.channelId || \"Channel\"}`,\r\n Guild: `${dbiInter.name}_${inter.guildId || \"Guild\"}`,\r\n Member: `${dbiInter.name}_${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n Message: `${dbiInter.name}_${(inter as any)?.message?.id}`,\r\n };\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n if (\r\n (await dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val,\r\n },\r\n })) === true\r\n )\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, {\r\n at: Date.now(),\r\n duration,\r\n });\r\n }\r\n\r\n for (const rateLimit of dbiInter.rateLimits) {\r\n await setRateLimit(rateLimit.type, rateLimit.duration);\r\n }\r\n\r\n if (inter.isChatInputCommand()) {\r\n let dcOptions = (inter.options as any)\r\n ._hoistedOptions as CommandInteractionOption[];\r\n let dbiOptions = dbiInter.options as any[];\r\n for (const dcOption of dcOptions) {\r\n const dbiOption = dbiOptions.find((i) => i.name == dcOption.name);\r\n if (dbiOption?.validate) {\r\n const res = await dbiOption.validate({\r\n value:\r\n dbiOption.type === Discord.ApplicationCommandOptionType.Attachment\r\n ? dcOption.attachment\r\n : dbiOption.type ===\r\n Discord.ApplicationCommandOptionType.Channel\r\n ? dcOption.channel\r\n : dbiOption.type === Discord.ApplicationCommandOptionType.Role\r\n ? dcOption.role\r\n : dbiOption.type === Discord.ApplicationCommandOptionType.User\r\n ? dcOption.user\r\n : dcOption.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n step: \"Result\",\r\n });\r\n if (res !== true) return;\r\n }\r\n }\r\n }\r\n\r\n let arg = {\r\n // @ts-ignore\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n dbiInteraction: dbiInter,\r\n // @ts-ignore\r\n locale,\r\n // @ts-ignore\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n // @ts-ignore\r\n other,\r\n };\r\n\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } catch (error) {\r\n // @ts-ignore\r\n await dbi.events.trigger(\r\n \"interactionError\",\r\n Object.assign(arg, { error })\r\n );\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n dbi.events.trigger(\"afterInteraction\", {\r\n dbi,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n locale,\r\n setRateLimit,\r\n data,\r\n other,\r\n });\r\n }\r\n\r\n dbi.data.clients.forEach((d) => {\r\n d.client.on(\"interactionCreate\", handle);\r\n });\r\n\r\n return () => {\r\n dbi.data.clients.forEach((d) => {\r\n d.client.off(\"interactionCreate\", handle);\r\n });\r\n };\r\n}\r\n"]}
1
+ {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord, { CommandInteractionOption } from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\nimport { NamespaceEnums } from \"../../generated/namespaceData\";\r\n\r\nconst componentTypes = [\r\n \"Button\",\r\n \"StringSelectMenu\",\r\n \"UserSelectMenu\",\r\n \"RoleSelectMenu\",\r\n \"ChannelSelectMenu\",\r\n \"MentionableSelectMenu\",\r\n \"Modal\",\r\n];\r\n\r\nexport function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {\r\n async function handle(inter: Discord.Interaction<\"cached\">) {\r\n const dbiInter =\r\n (inter as any).dbiChatInput ??\r\n dbi.data.interactions.find((i) => {\r\n let isUsesCustomId =\r\n inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit();\r\n let parsedId = isUsesCustomId\r\n ? parseCustomId(dbi, (inter as any).customId)\r\n : null;\r\n return (\r\n (i.type == \"ChatInput\" &&\r\n (inter.isChatInputCommand() || inter.isAutocomplete()) &&\r\n i.name ==\r\n [\r\n inter.commandName,\r\n inter.options.getSubcommandGroup(false),\r\n inter.options.getSubcommand(false),\r\n ]\r\n .filter((i) => !!i)\r\n .join(\" \")) ||\r\n ((i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\") &&\r\n (inter.isMessageContextMenuCommand() ||\r\n inter.isUserContextMenuCommand()) &&\r\n inter.commandName == i.name) ||\r\n (componentTypes.includes(i.type) &&\r\n isUsesCustomId &&\r\n parsedId?.name == i.name)\r\n );\r\n });\r\n\r\n if (!dbiInter) return;\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName)\r\n ? dbi.data.locales.get(userLocaleName)\r\n : dbi.data.locales.get(dbi.config.defaults.locale.name);\r\n\r\n let guildLocaleName = inter.guild\r\n ? inter.guild.preferredLocale.split(\"-\")[0]\r\n : null;\r\n let guildLocale = guildLocaleName\r\n ? dbi.data.locales.has(guildLocaleName)\r\n ? dbi.data.locales.get(guildLocaleName)\r\n : dbi.data.locales.get(dbi.config.defaults.locale.name)\r\n : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale,\r\n };\r\n\r\n let data =\r\n inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit()\r\n ? parseCustomId(dbi, inter.customId).data\r\n : undefined;\r\n\r\n let other = {};\r\n\r\n if (\r\n !(await dbi.events.trigger(\"beforeInteraction\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n setRateLimit,\r\n data,\r\n other,\r\n dbiInteraction: dbiInter,\r\n }))\r\n )\r\n return;\r\n\r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(\r\n (i) => i.name == focussed.name\r\n );\r\n if (option?.validate) {\r\n const res = await option.validate({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n step: \"Autocomplete\",\r\n });\r\n\r\n if (Array.isArray(res) && res.length > 0) {\r\n await inter.respond(res);\r\n return;\r\n }\r\n\r\n if (res !== true) return;\r\n }\r\n\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let rateLimitKeyMap = {\r\n User: `${dbiInter.name}_${inter.user.id}`,\r\n Channel: `${dbiInter.name}_${inter.channelId || \"Channel\"}`,\r\n Guild: `${dbiInter.name}_${inter.guildId || \"Guild\"}`,\r\n Member: `${dbiInter.name}_${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n Message: `${dbiInter.name}_${(inter as any)?.message?.id}`,\r\n };\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n if (\r\n (await dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val,\r\n },\r\n })) === true\r\n )\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, {\r\n at: Date.now(),\r\n duration,\r\n });\r\n }\r\n\r\n for (const rateLimit of dbiInter.rateLimits) {\r\n await setRateLimit(rateLimit.type, rateLimit.duration);\r\n }\r\n\r\n if (inter.isChatInputCommand()) {\r\n let dcOptions = (inter.options as any)\r\n ._hoistedOptions as CommandInteractionOption[];\r\n let dbiOptions = dbiInter.options as any[];\r\n for (const dcOption of dcOptions) {\r\n const dbiOption = dbiOptions.find((i) => i.name == dcOption.name);\r\n if (dbiOption?.validate) {\r\n const res = await dbiOption.validate({\r\n value:\r\n dbiOption.type === Discord.ApplicationCommandOptionType.Attachment\r\n ? dcOption.attachment\r\n : dbiOption.type ===\r\n Discord.ApplicationCommandOptionType.Channel\r\n ? dcOption.channel\r\n : dbiOption.type === Discord.ApplicationCommandOptionType.Role\r\n ? dcOption.role\r\n : dbiOption.type === Discord.ApplicationCommandOptionType.User\r\n ? dcOption.user\r\n : dcOption.value,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n dbi,\r\n data,\r\n other,\r\n locale,\r\n step: \"Result\",\r\n });\r\n if (res !== true) return;\r\n }\r\n }\r\n }\r\n\r\n let arg = {\r\n // @ts-ignore\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n dbiInteraction: dbiInter,\r\n // @ts-ignore\r\n locale,\r\n // @ts-ignore\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n // @ts-ignore\r\n other,\r\n };\r\n\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute(arg);\r\n } catch (error) {\r\n // @ts-ignore\r\n await dbi.events.trigger(\r\n \"interactionError\",\r\n Object.assign(arg, { error })\r\n );\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n dbi.events.trigger(\"afterInteraction\", {\r\n dbi,\r\n interaction: inter,\r\n dbiInteraction: dbiInter,\r\n locale,\r\n setRateLimit,\r\n data,\r\n other,\r\n });\r\n }\r\n\r\n dbi.data.clients.forEach((d) => {\r\n d.client.on(\"interactionCreate\", handle);\r\n });\r\n\r\n return () => {\r\n dbi.data.clients.forEach((d) => {\r\n d.client.off(\"interactionCreate\", handle);\r\n });\r\n };\r\n}\r\n"]}
@@ -346,9 +346,9 @@ class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {
346
346
  interaction: this,
347
347
  locale: {
348
348
  user: this.dbi.data.locales.get(this.locale) ||
349
- this.dbi.data.locales.get(this.dbi.config.defaults.locale),
349
+ this.dbi.data.locales.get(this.dbi.config.defaults.locale.name),
350
350
  guild: this.message.guild?.preferredLocale
351
- ? this.dbi.data.locales.get(this.message.guild?.preferredLocale?.split("-")?.at(0)) || this.dbi.data.locales.get(this.dbi.config.defaults.locale)
351
+ ? this.dbi.data.locales.get(this.message.guild?.preferredLocale?.split("-")?.at(0)) || this.dbi.data.locales.get(this.dbi.config.defaults.locale.name)
352
352
  : null,
353
353
  }
354
354
  })));
@@ -1 +1 @@
1
- {"version":3,"file":"FakeMessageInteraction.js","sourceRoot":"","sources":["../../../src/types/other/FakeMessageInteraction.ts"],"names":[],"mappings":"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","sourcesContent":["import { Message, MessagePayload, ApplicationCommandType, ChatInputCommandInteraction, Locale, APIInteractionGuildMember, GuildMember, PermissionsBitField, CacheType, CommandInteractionOptionResolver, CommandOptionDataTypeResolvable, ApplicationCommandOptionType, User, Attachment, InteractionEditReplyOptions, InteractionReplyOptions } from 'discord.js';\r\nimport { TDBIInteractions } from '../Interaction';\r\nimport { plsParseArgs } from \"plsargs\";\r\nimport { DBI } from '../../DBI';\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { ChannelType } from \"discord-api-types/v10\";\r\n\r\nexport class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {\r\n channelId: string;\r\n commandName: string;\r\n appPermissions: any;\r\n applicationId: string;\r\n channel: any;\r\n command: any;\r\n commandGuildId: string;\r\n commandId: any;\r\n commandType: ApplicationCommandType.ChatInput;\r\n // awaitModalSubmit: (...arr: any[]) => any;\r\n // fetchReply: () => Promise<any>;\r\n deferred: boolean = false;\r\n client: any;\r\n createdAt: Date;\r\n ephemeral: boolean = false;\r\n createdTimestamp: number;\r\n guild: any;\r\n guildId: string;\r\n guildLocale: Locale;\r\n id: string;\r\n user: User;\r\n private repliedMessage: Message | undefined;\r\n private lastFollowUp: Message | undefined;\r\n member: GuildMember | APIInteractionGuildMember;\r\n memberPermissions: Readonly<PermissionsBitField>;\r\n parsedArgs = new Map<string, FakeMessageInteractionArgument>();\r\n args: import(\"plsargs/src/Result\").Result;\r\n usedCommandName: string;\r\n fullCommandName: string;\r\n options: any;\r\n dbiChatInput: TDBIInteractions<NamespaceEnums>;\r\n dbiChatInputOptions: any[];\r\n fake: boolean = true;\r\n _hoistedOptions: any;\r\n _initialized: boolean = false;\r\n _lastAction: string | undefined;\r\n\r\n constructor(public dbi: DBI<NamespaceEnums>, public message: Message, chatInput: TDBIInteractions<NamespaceEnums>, public locale: string, commandName: string, public usedPrefix: string) {\r\n const self = this;\r\n\r\n this.channelId = message.channel.id;\r\n this.commandName = chatInput.name.split(\" \").at(0);\r\n this.appPermissions = message.guild?.members.me.permissionsIn(message.channel as any) ?? new PermissionsBitField(8n);\r\n this.applicationId = message.client.user.id;\r\n this.channel = message.channel as any;\r\n this.commandGuildId = message.guild.id;\r\n this.commandType = ApplicationCommandType.ChatInput;\r\n\r\n this.client = message.client;\r\n this.createdAt = message.createdAt;\r\n this.createdTimestamp = message.createdTimestamp;\r\n this.guild = message.guild;\r\n this.guildId = message.guild?.id;\r\n this.guildLocale = message.guild?.preferredLocale;\r\n this.id = message.guild?.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? message.client.application.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? \"-1\";\r\n this.locale = message.guild?.preferredLocale;\r\n this.member = message.member;\r\n this.memberPermissions = message.member?.permissions;\r\n this.user = message.author;\r\n\r\n this.usedCommandName = commandName;\r\n this.fullCommandName = chatInput.name;\r\n this.dbiChatInput = chatInput;\r\n this.dbiChatInputOptions = chatInput.options ? chatInput.options.map(i => ({ ...i })) : [];\r\n\r\n {\r\n const argContent = message.content.slice(usedPrefix.length + commandName.length).replace(/ +/, \" \").trim();\r\n const args = plsParseArgs(argContent);\r\n\r\n this.args = args;\r\n\r\n const options = chatInput.options ?? [];\r\n const atchs = [...message.attachments.values()];\r\n for (let i = 0, attachmentIndex = 0, namedValueSize = 0; i < options.length; i++) {\r\n const option = options[i];\r\n if (!option) break;\r\n if (option.type === ApplicationCommandOptionType.Attachment) {\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: atchs.at(attachmentIndex)?.url,\r\n attachment: atchs.at(attachmentIndex++)\r\n })\r\n continue;\r\n }\r\n const value = option.messageCommands?.rest ? args._.slice(i).join(\" \") : (args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize));\r\n if (args.has(option.name)) namedValueSize++;\r\n\r\n const interactionChoicesLocale = this.dbi.data.interactionLocales.get(self.dbiChatInput.name)?.data?.[locale]?.options[option.name]?.choices;\r\n\r\n const localizedChoices = option.choices?.length ? option.choices.map(choice => ({\r\n ...choice,\r\n name: interactionChoicesLocale?.[choice.value] ?? choice.name\r\n })) : option._choices;\r\n\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value:\r\n localizedChoices?.find(c => c.value === value || c.name === value)?.value ??\r\n option.choices?.find(c => c.value === value || c.name === value)?.value ??\r\n value\r\n });\r\n }\r\n }\r\n\r\n this.options = {\r\n get(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return {\r\n value: rawValue,\r\n get boolean() { return self.options.getBoolean(name); },\r\n get channel() { return self.options.getChannel(name); },\r\n get string() { return self.options.getString(name); },\r\n get integer() { return self.options.getInteger(name); },\r\n get number() { return self.options.getNumber(name); },\r\n get user() { return self.options.getUser(name); },\r\n get member() { return self.options.getMember(name); },\r\n get role() { return self.options.getRole(name); },\r\n get mentionable() { return self.options.getMentionable(name); },\r\n get attachment() { return self.options.getAttachment(name); }\r\n };\r\n },\r\n get _hoistedOptions() {\r\n return self._hoistedOptions;\r\n },\r\n getSubcommand() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 1) return null;\r\n return splitted.at(-1);\r\n },\r\n getSubcommandGroup() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 3) return splitted[1];\r\n return null;\r\n },\r\n getBoolean(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return !!self.dbi.config.messageCommands.typeAliases.booleans[rawValue.toLowerCase()];\r\n },\r\n getChannel(name: string, _: any, channelType?: ChannelType | ChannelType[]) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n let channel = self.message.client.channels.cache.get(value);\r\n if (!channel) channel = self.message.client.channels.cache.find(c => {\r\n if (self.guildId && (c as any).guildId && (c as any).guildId !== self.guildId) return false;\r\n return (c as any).name === value;\r\n });\r\n // @ts-ignore\r\n if (channelType && channel?.type !== channelType && !channelType?.includes?.(channel?.type)) return null;\r\n return channel;\r\n },\r\n getString(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = `${self.getRawOptionValue(name)}`;\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === rawValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getInteger(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseInt(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getNumber(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseFloat(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getUser(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n return user;\r\n },\r\n getUserId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getMember(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n return member;\r\n },\r\n getMemberId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getRole(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@&|>/g, \"\");\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n return role;\r\n },\r\n getRoleId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@&|>/g, \"\");\r\n },\r\n getMentionable(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<(@|#)(!|&)?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n if (user) return user;\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n if (member) return member;\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n if (role) return role;\r\n return null;\r\n },\r\n getMentionableId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n },\r\n getMessage() {\r\n return self.message;\r\n },\r\n getAttachment(name: string) {\r\n let d = self.parsedArgs.get(name);\r\n return d?.attachment ?? null;\r\n },\r\n getChannelId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n if (this._initialized) return;\r\n this._initialized = true;\r\n this._hoistedOptionsInit();\r\n }\r\n\r\n _hoistedOptionsInit() {\r\n this._hoistedOptions = [...this.parsedArgs.values()].map(arg => {\r\n switch (arg.type) {\r\n case ApplicationCommandOptionType.String: {\r\n return { ...this.options.get(arg.name), value: this.options.getString(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n return { ...this.options.get(arg.name), value: this.options.getInteger(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n return { ...this.options.get(arg.name), value: this.options.getNumber(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n return { ...this.options.get(arg.name), value: this.options.getBoolean(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n return { ...this.options.get(arg.name), value: this.options.getUser(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n return { ...this.options.get(arg.name), value: this.options.getChannel(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n return { ...this.options.get(arg.name), value: this.options.getRole(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n return { ...this.options.get(arg.name), value: this.options.getMentionable(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n return { ...this.options.get(arg.name), value: this.options.getAttachment(arg.name)?.url };\r\n }\r\n case ApplicationCommandOptionType.Subcommand: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommand() };\r\n }\r\n case ApplicationCommandOptionType.SubcommandGroup: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommandGroup() };\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getRawOptionValue(name: string): any {\r\n return this.parsedArgs.get(name)?.value;\r\n }\r\n\r\n private getClonedDBIOption(name: string): any {\r\n return this.dbiChatInputOptions.find(o => o.name === name);\r\n }\r\n\r\n inGuild() {\r\n return true;\r\n }\r\n\r\n async deferReply(options: any): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(options?.content ?? (await this.dbi.config.defaults.messageCommands.deferReplyContent({\r\n // @ts-ignore\r\n dbiInteraction: this.dbiChatInput,\r\n interaction: this,\r\n locale: {\r\n user: this.dbi.data.locales.get(this.locale) ||\r\n this.dbi.data.locales.get(this.dbi.config.defaults.locale),\r\n guild: this.message.guild?.preferredLocale\r\n ? this.dbi.data.locales.get(\r\n this.message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || this.dbi.data.locales.get(this.dbi.config.defaults.locale)\r\n : null,\r\n }\r\n })));\r\n this.deferred = true;\r\n this._lastAction = \"deferReply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async deleteReply() {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.delete();\r\n this.repliedMessage = undefined;\r\n this._lastAction = \"deleteReply\";\r\n }\r\n\r\n async followUp(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (!this.lastFollowUp) {\r\n this.lastFollowUp = await this.repliedMessage.reply(content);\r\n } else {\r\n this.lastFollowUp = await this.lastFollowUp.reply(content);\r\n }\r\n this._lastAction = \"followUp\";\r\n return this.lastFollowUp;\r\n }\r\n\r\n async editReply(content: string | MessagePayload | InteractionEditReplyOptions) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (typeof content !== \"string\" && this._lastAction === \"deferReply\" && typeof (content as any).content === \"undefined\") {\r\n (content as any).content = null;\r\n }\r\n await this.repliedMessage.edit(content);\r\n this._lastAction = \"editReply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async reply(content: string | MessagePayload | InteractionReplyOptions): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(content as any);\r\n this._lastAction = \"reply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async awaitModalSubmit() {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n async fetchReply() {\r\n return this.repliedMessage?.id && await this.message.channel.messages.fetch(this.repliedMessage.id);\r\n };\r\n\r\n isAnySelectMenu() { return false; }\r\n isAutocomplete() { return false; }\r\n isButton() { return false; }\r\n isChannelSelectMenu() { return false; }\r\n isChatInputCommand() { return true; }\r\n isCommand() { return true; }\r\n isContextMenuCommand() { return false; }\r\n isMentionableSelectMenu() { return false; }\r\n isMessageComponent() { return false; }\r\n isMessageContextMenuCommand() { return false; }\r\n isModalSubmit() { return false; }\r\n isRepliable() { return true; }\r\n isRoleSelectMenu() { return false; }\r\n isStringSelectMenu() { return false; }\r\n isUserContextMenuCommand() { return false; }\r\n isUserSelectMenu() { return false; }\r\n isSelectMenu() { return false; }\r\n}\r\n\r\ninterface FakeMessageInteractionArgument {\r\n type: ApplicationCommandOptionType,\r\n value: any,\r\n attachment?: Attachment,\r\n name: string\r\n}"]}
1
+ {"version":3,"file":"FakeMessageInteraction.js","sourceRoot":"","sources":["../../../src/types/other/FakeMessageInteraction.ts"],"names":[],"mappings":"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","sourcesContent":["import { Message, MessagePayload, ApplicationCommandType, ChatInputCommandInteraction, Locale, APIInteractionGuildMember, GuildMember, PermissionsBitField, CacheType, CommandInteractionOptionResolver, CommandOptionDataTypeResolvable, ApplicationCommandOptionType, User, Attachment, InteractionEditReplyOptions, InteractionReplyOptions } from 'discord.js';\r\nimport { TDBIInteractions } from '../Interaction';\r\nimport { plsParseArgs } from \"plsargs\";\r\nimport { DBI } from '../../DBI';\r\nimport { NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { ChannelType } from \"discord-api-types/v10\";\r\n\r\nexport class FakeMessageInteraction /* implements ChatInputCommandInteraction */ {\r\n channelId: string;\r\n commandName: string;\r\n appPermissions: any;\r\n applicationId: string;\r\n channel: any;\r\n command: any;\r\n commandGuildId: string;\r\n commandId: any;\r\n commandType: ApplicationCommandType.ChatInput;\r\n // awaitModalSubmit: (...arr: any[]) => any;\r\n // fetchReply: () => Promise<any>;\r\n deferred: boolean = false;\r\n client: any;\r\n createdAt: Date;\r\n ephemeral: boolean = false;\r\n createdTimestamp: number;\r\n guild: any;\r\n guildId: string;\r\n guildLocale: Locale;\r\n id: string;\r\n user: User;\r\n private repliedMessage: Message | undefined;\r\n private lastFollowUp: Message | undefined;\r\n member: GuildMember | APIInteractionGuildMember;\r\n memberPermissions: Readonly<PermissionsBitField>;\r\n parsedArgs = new Map<string, FakeMessageInteractionArgument>();\r\n args: import(\"plsargs/src/Result\").Result;\r\n usedCommandName: string;\r\n fullCommandName: string;\r\n options: any;\r\n dbiChatInput: TDBIInteractions<NamespaceEnums>;\r\n dbiChatInputOptions: any[];\r\n fake: boolean = true;\r\n _hoistedOptions: any;\r\n _initialized: boolean = false;\r\n _lastAction: string | undefined;\r\n\r\n constructor(public dbi: DBI<NamespaceEnums>, public message: Message, chatInput: TDBIInteractions<NamespaceEnums>, public locale: string, commandName: string, public usedPrefix: string) {\r\n const self = this;\r\n\r\n this.channelId = message.channel.id;\r\n this.commandName = chatInput.name.split(\" \").at(0);\r\n this.appPermissions = message.guild?.members.me.permissionsIn(message.channel as any) ?? new PermissionsBitField(8n);\r\n this.applicationId = message.client.user.id;\r\n this.channel = message.channel as any;\r\n this.commandGuildId = message.guild.id;\r\n this.commandType = ApplicationCommandType.ChatInput;\r\n\r\n this.client = message.client;\r\n this.createdAt = message.createdAt;\r\n this.createdTimestamp = message.createdTimestamp;\r\n this.guild = message.guild;\r\n this.guildId = message.guild?.id;\r\n this.guildLocale = message.guild?.preferredLocale;\r\n this.id = message.guild?.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? message.client.application.commands.cache.find((cmd) => cmd.name === this.commandName)?.id ?? \"-1\";\r\n this.locale = message.guild?.preferredLocale;\r\n this.member = message.member;\r\n this.memberPermissions = message.member?.permissions;\r\n this.user = message.author;\r\n\r\n this.usedCommandName = commandName;\r\n this.fullCommandName = chatInput.name;\r\n this.dbiChatInput = chatInput;\r\n this.dbiChatInputOptions = chatInput.options ? chatInput.options.map(i => ({ ...i })) : [];\r\n\r\n {\r\n const argContent = message.content.slice(usedPrefix.length + commandName.length).replace(/ +/, \" \").trim();\r\n const args = plsParseArgs(argContent);\r\n\r\n this.args = args;\r\n\r\n const options = chatInput.options ?? [];\r\n const atchs = [...message.attachments.values()];\r\n for (let i = 0, attachmentIndex = 0, namedValueSize = 0; i < options.length; i++) {\r\n const option = options[i];\r\n if (!option) break;\r\n if (option.type === ApplicationCommandOptionType.Attachment) {\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value: atchs.at(attachmentIndex)?.url,\r\n attachment: atchs.at(attachmentIndex++)\r\n })\r\n continue;\r\n }\r\n const value = option.messageCommands?.rest ? args._.slice(i).join(\" \") : (args.get(option.name) ?? args.get(i - attachmentIndex - namedValueSize));\r\n if (args.has(option.name)) namedValueSize++;\r\n\r\n const interactionChoicesLocale = this.dbi.data.interactionLocales.get(self.dbiChatInput.name)?.data?.[locale]?.options[option.name]?.choices;\r\n\r\n const localizedChoices = option.choices?.length ? option.choices.map(choice => ({\r\n ...choice,\r\n name: interactionChoicesLocale?.[choice.value] ?? choice.name\r\n })) : option._choices;\r\n\r\n this.parsedArgs.set(option.name, {\r\n name: option.name,\r\n type: option.type,\r\n value:\r\n localizedChoices?.find(c => c.value === value || c.name === value)?.value ??\r\n option.choices?.find(c => c.value === value || c.name === value)?.value ??\r\n value\r\n });\r\n }\r\n }\r\n\r\n this.options = {\r\n get(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return {\r\n value: rawValue,\r\n get boolean() { return self.options.getBoolean(name); },\r\n get channel() { return self.options.getChannel(name); },\r\n get string() { return self.options.getString(name); },\r\n get integer() { return self.options.getInteger(name); },\r\n get number() { return self.options.getNumber(name); },\r\n get user() { return self.options.getUser(name); },\r\n get member() { return self.options.getMember(name); },\r\n get role() { return self.options.getRole(name); },\r\n get mentionable() { return self.options.getMentionable(name); },\r\n get attachment() { return self.options.getAttachment(name); }\r\n };\r\n },\r\n get _hoistedOptions() {\r\n return self._hoistedOptions;\r\n },\r\n getSubcommand() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 1) return null;\r\n return splitted.at(-1);\r\n },\r\n getSubcommandGroup() {\r\n let splitted = self.fullCommandName.split(\" \");\r\n if (splitted.length === 3) return splitted[1];\r\n return null;\r\n },\r\n getBoolean(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return !!self.dbi.config.messageCommands.typeAliases.booleans[rawValue.toLowerCase()];\r\n },\r\n getChannel(name: string, _: any, channelType?: ChannelType | ChannelType[]) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n let channel = self.message.client.channels.cache.get(value);\r\n if (!channel) channel = self.message.client.channels.cache.find(c => {\r\n if (self.guildId && (c as any).guildId && (c as any).guildId !== self.guildId) return false;\r\n return (c as any).name === value;\r\n });\r\n // @ts-ignore\r\n if (channelType && channel?.type !== channelType && !channelType?.includes?.(channel?.type)) return null;\r\n return channel;\r\n },\r\n getString(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = `${self.getRawOptionValue(name)}`;\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === rawValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getInteger(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseInt(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getNumber(name: string) {\r\n const dbiOption = self.getClonedDBIOption(name);\r\n let rawValue = self.getRawOptionValue(name);\r\n let parsedValue = parseFloat(rawValue);\r\n let choices = dbiOption.choices ?? dbiOption._choices;\r\n if (choices) return choices.find(c => c.value === parsedValue || c.name === rawValue)?.value ?? rawValue;\r\n return rawValue;\r\n },\r\n getUser(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n return user;\r\n },\r\n getUserId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getMember(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@!?|>/g, \"\");\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n return member;\r\n },\r\n getMemberId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@!?|>/g, \"\");\r\n },\r\n getRole(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<@&|>/g, \"\");\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n return role;\r\n },\r\n getRoleId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@&|>/g, \"\");\r\n },\r\n getMentionable(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<(@|#)(!|&)?|>/g, \"\");\r\n let user = self.message.client.users.cache.get(value);\r\n if (!user) user = self.message.client.users.cache.find(u => u.username === value || u.tag === value);\r\n if (user) return user;\r\n let member = self.message.guild?.members.cache.get(value);\r\n if (!member) member = self.message.guild?.members.cache.find(m => m.user.username === value || m.user.tag === value);\r\n if (member) return member;\r\n let role = self.message.guild?.roles.cache.get(value);\r\n if (!role) role = self.message.guild?.roles.cache.find(r => r.name === value);\r\n if (role) return role;\r\n return null;\r\n },\r\n getMentionableId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n return rawValue.replace(/<@(!|&)?|>/g, \"\");\r\n },\r\n getMessage() {\r\n return self.message;\r\n },\r\n getAttachment(name: string) {\r\n let d = self.parsedArgs.get(name);\r\n return d?.attachment ?? null;\r\n },\r\n getChannelId(name: string) {\r\n const rawValue = self.getRawOptionValue(name);\r\n if (!rawValue) return null;\r\n let value = rawValue.replace(/<#|>/g, \"\");\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n if (this._initialized) return;\r\n this._initialized = true;\r\n this._hoistedOptionsInit();\r\n }\r\n\r\n _hoistedOptionsInit() {\r\n this._hoistedOptions = [...this.parsedArgs.values()].map(arg => {\r\n switch (arg.type) {\r\n case ApplicationCommandOptionType.String: {\r\n return { ...this.options.get(arg.name), value: this.options.getString(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Integer: {\r\n return { ...this.options.get(arg.name), value: this.options.getInteger(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Number: {\r\n return { ...this.options.get(arg.name), value: this.options.getNumber(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.Boolean: {\r\n return { ...this.options.get(arg.name), value: this.options.getBoolean(arg.name) };\r\n }\r\n case ApplicationCommandOptionType.User: {\r\n return { ...this.options.get(arg.name), value: this.options.getUser(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Channel: {\r\n return { ...this.options.get(arg.name), value: this.options.getChannel(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Role: {\r\n return { ...this.options.get(arg.name), value: this.options.getRole(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Mentionable: {\r\n return { ...this.options.get(arg.name), value: this.options.getMentionable(arg.name)?.id };\r\n }\r\n case ApplicationCommandOptionType.Attachment: {\r\n return { ...this.options.get(arg.name), value: this.options.getAttachment(arg.name)?.url };\r\n }\r\n case ApplicationCommandOptionType.Subcommand: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommand() };\r\n }\r\n case ApplicationCommandOptionType.SubcommandGroup: {\r\n return { ...this.options.get(arg.name), value: this.options.getSubcommandGroup() };\r\n }\r\n }\r\n });\r\n }\r\n\r\n private getRawOptionValue(name: string): any {\r\n return this.parsedArgs.get(name)?.value;\r\n }\r\n\r\n private getClonedDBIOption(name: string): any {\r\n return this.dbiChatInputOptions.find(o => o.name === name);\r\n }\r\n\r\n inGuild() {\r\n return true;\r\n }\r\n\r\n async deferReply(options: any): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(options?.content ?? (await this.dbi.config.defaults.messageCommands.deferReplyContent({\r\n // @ts-ignore\r\n dbiInteraction: this.dbiChatInput,\r\n interaction: this,\r\n locale: {\r\n user: this.dbi.data.locales.get(this.locale) ||\r\n this.dbi.data.locales.get(this.dbi.config.defaults.locale.name),\r\n guild: this.message.guild?.preferredLocale\r\n ? this.dbi.data.locales.get(\r\n this.message.guild?.preferredLocale?.split(\"-\")?.at(0)\r\n ) || this.dbi.data.locales.get(this.dbi.config.defaults.locale.name)\r\n : null,\r\n }\r\n })));\r\n this.deferred = true;\r\n this._lastAction = \"deferReply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async deleteReply() {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n await this.repliedMessage.delete();\r\n this.repliedMessage = undefined;\r\n this._lastAction = \"deleteReply\";\r\n }\r\n\r\n async followUp(content: string | MessagePayload) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (!this.lastFollowUp) {\r\n this.lastFollowUp = await this.repliedMessage.reply(content);\r\n } else {\r\n this.lastFollowUp = await this.lastFollowUp.reply(content);\r\n }\r\n this._lastAction = \"followUp\";\r\n return this.lastFollowUp;\r\n }\r\n\r\n async editReply(content: string | MessagePayload | InteractionEditReplyOptions) {\r\n if (!this.repliedMessage) throw new Error(\"No deferred reply.\");\r\n if (typeof content !== \"string\" && this._lastAction === \"deferReply\" && typeof (content as any).content === \"undefined\") {\r\n (content as any).content = null;\r\n }\r\n await this.repliedMessage.edit(content);\r\n this._lastAction = \"editReply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async reply(content: string | MessagePayload | InteractionReplyOptions): Promise<any> {\r\n if (this.repliedMessage) throw new Error(\"Already deferred reply.\");\r\n this.repliedMessage = await this.message.reply(content as any);\r\n this._lastAction = \"reply\";\r\n return this.repliedMessage;\r\n }\r\n\r\n async awaitModalSubmit() {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n async fetchReply() {\r\n return this.repliedMessage?.id && await this.message.channel.messages.fetch(this.repliedMessage.id);\r\n };\r\n\r\n isAnySelectMenu() { return false; }\r\n isAutocomplete() { return false; }\r\n isButton() { return false; }\r\n isChannelSelectMenu() { return false; }\r\n isChatInputCommand() { return true; }\r\n isCommand() { return true; }\r\n isContextMenuCommand() { return false; }\r\n isMentionableSelectMenu() { return false; }\r\n isMessageComponent() { return false; }\r\n isMessageContextMenuCommand() { return false; }\r\n isModalSubmit() { return false; }\r\n isRepliable() { return true; }\r\n isRoleSelectMenu() { return false; }\r\n isStringSelectMenu() { return false; }\r\n isUserContextMenuCommand() { return false; }\r\n isUserSelectMenu() { return false; }\r\n isSelectMenu() { return false; }\r\n}\r\n\r\ninterface FakeMessageInteractionArgument {\r\n type: ApplicationCommandOptionType,\r\n value: any,\r\n attachment?: Attachment,\r\n name: string\r\n}"]}
@@ -13,11 +13,13 @@ export type TDBILocaleConstructor<TNamespace extends NamespaceEnums> = Omit<DBIL
13
13
  export declare class DBILocale<TNamespace extends NamespaceEnums> {
14
14
  name: TDBILocaleString;
15
15
  data: NamespaceData[TNamespace]["contentLocale"];
16
- private _data;
16
+ _data: DBILangConstructorObject;
17
17
  dbi: DBI<TNamespace, {}>;
18
18
  flag?: string;
19
19
  constructor(dbi: DBI<TNamespace, {}>, cfg: TDBILocaleConstructor<TNamespace>);
20
20
  mergeLocale(locale: DBILocale<TNamespace>): DBILocale<TNamespace>;
21
+ get(path: string): string | null;
22
+ format(path: string, ...args: any[]): string;
21
23
  }
22
- export declare function convertLang<TNamespace extends NamespaceEnums>(data: DBILangConstructorObject): NamespaceData[TNamespace]["contentLocale"];
24
+ export declare function createInfinitePathProxy(onApplyPath: (path: string[], ...args: any[]) => string, path?: string[]): any;
23
25
  //# sourceMappingURL=Locale.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../../src/types/other/Locale.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,WAAW,aAAa;IAC5B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC;CACvD;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1N,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAExK,qBAAa,SAAS,CAAC,UAAU,SAAS,cAAc;IACtD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC;IACjD,OAAO,CAAC,KAAK,CAA2B;IACxC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;gBACD,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC;IAO5E,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;CASlE;AAED,wBAAgB,WAAW,CAAC,UAAU,SAAS,cAAc,EAAE,IAAI,EAAE,wBAAwB,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAUzI"}
1
+ {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../../src/types/other/Locale.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAGhC,MAAM,WAAW,aAAa;IAC5B,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,GAAG,MAAM,CAAC;CACvD;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1N,MAAM,MAAM,qBAAqB,CAAC,UAAU,SAAS,cAAc,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,GAAG;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAExK,qBAAa,SAAS,CAAC,UAAU,SAAS,cAAc;IACtD,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,EAAE,wBAAwB,CAAC;IAChC,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAA;gBACD,GAAG,EAAE,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,qBAAqB,CAAC,UAAU,CAAC;IAS5E,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC;IAMjE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAGhC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM;CAY7C;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,GAAG,CASzH"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DBILocale = void 0;
4
- exports.convertLang = convertLang;
4
+ exports.createInfinitePathProxy = createInfinitePathProxy;
5
5
  const tslib_1 = require("tslib");
6
6
  const stuffs_1 = tslib_1.__importDefault(require("stuffs"));
7
+ const lodash_1 = tslib_1.__importDefault(require("lodash"));
7
8
  class DBILocale {
8
9
  name;
9
10
  data;
@@ -15,27 +16,42 @@ class DBILocale {
15
16
  this.name = cfg.name;
16
17
  this.flag = cfg.flag;
17
18
  this._data = cfg.data;
18
- this.data = convertLang(cfg.data);
19
+ this.data = createInfinitePathProxy((path, ...args) => {
20
+ return this.format(path.join("."), ...args);
21
+ });
22
+ ;
19
23
  }
20
24
  mergeLocale(locale) {
21
25
  this._data = stuffs_1.default.defaultify(locale._data, this._data, true);
22
- this.data = convertLang(this._data);
23
- locale.data = this.data;
24
26
  locale._data = this._data;
25
27
  return this;
26
28
  }
29
+ get(path) {
30
+ return lodash_1.default.get(this._data, path) || null;
31
+ }
32
+ format(path, ...args) {
33
+ const value = this.get(path);
34
+ if (!value) {
35
+ const defaultLocale = this.dbi.locale(this.dbi.config.defaults.locale.name);
36
+ if (!defaultLocale)
37
+ return this.dbi.config.defaults.locale.invalidPath({
38
+ locale: this,
39
+ path,
40
+ });
41
+ return defaultLocale.format(path, ...args);
42
+ }
43
+ return stuffs_1.default.mapReplace(value, args.map((t, i) => [new RegExp(`\\{${i}(;[^}]+)?\\}`, "g"), t]));
44
+ }
27
45
  }
28
46
  exports.DBILocale = DBILocale;
29
- function convertLang(data) {
30
- return Object.fromEntries(Object.entries(data).map(([key, value]) => {
31
- if (typeof value === "string") {
32
- return [key, (...args) => {
33
- return stuffs_1.default.mapReplace(value, args.map((t, i) => [new RegExp(`\\{${i}(;[^}]+)?\\}`, "g"), t]));
34
- }];
35
- }
36
- else {
37
- return [key, convertLang(value)];
47
+ function createInfinitePathProxy(onApplyPath, path = []) {
48
+ return new Proxy(() => { }, {
49
+ get(target, key) {
50
+ return createInfinitePathProxy(onApplyPath, [...path, key.toString()]);
51
+ },
52
+ apply(target, thisArg, args) {
53
+ return onApplyPath(path, ...args);
38
54
  }
39
- }));
55
+ });
40
56
  }
41
57
  //# sourceMappingURL=Locale.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../../src/types/other/Locale.ts"],"names":[],"mappings":";;;AAyCA,kCAUC;;AAnDD,4DAA4B;AAiB5B,MAAa,SAAS;IACpB,IAAI,CAAmB;IACvB,IAAI,CAA6C;IACzC,KAAK,CAA2B;IACxC,GAAG,CAAsB;IACzB,IAAI,CAAS;IACb,YAAY,GAAwB,EAAE,GAAsC;QAC1E,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAa,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,WAAW,CAAC,MAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,gBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAQ,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,WAAW,CAAa,IAAI,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAtBD,8BAsBC;AAED,SAAgB,WAAW,CAAoC,IAA8B;IAC3F,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;oBAC9B,OAAO,gBAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClG,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC,CAAA;AACL,CAAC","sourcesContent":["import stuffs from \"stuffs\";\r\nimport { NamespaceData, NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { DBI } from \"../../DBI\";\r\n\r\n\r\nexport interface DBILangObject {\r\n [property: string]: DBILangObject & ((...args: any[]) => string);\r\n}\r\n\r\nexport interface DBILangConstructorObject {\r\n [property: string]: DBILangConstructorObject | string;\r\n}\r\n\r\nexport type TDBILocaleString = \"en\" | \"bg\" | \"zh\" | \"hr\" | \"cs\" | \"da\" | \"nl\" | \"fi\" | \"fr\" | \"de\" | \"el\" | \"hi\" | \"hu\" | \"it\" | \"ja\" | \"ko\" | \"no\" | \"pl\" | \"pt\" | \"ro\" | \"ru\" | \"es\" | \"sv\" | \"th\" | \"tr\" | \"uk\" | \"vi\";\r\n\r\nexport type TDBILocaleConstructor<TNamespace extends NamespaceEnums> = Omit<DBILocale<TNamespace>, \"data\" | \"dbi\" | \"mergeLocale\"> & { data: DBILangConstructorObject };\r\n\r\nexport class DBILocale<TNamespace extends NamespaceEnums> {\r\n name: TDBILocaleString;\r\n data: NamespaceData[TNamespace][\"contentLocale\"];\r\n private _data: DBILangConstructorObject;\r\n dbi: DBI<TNamespace, {}>;\r\n flag?: string\r\n constructor(dbi: DBI<TNamespace, {}>, cfg: TDBILocaleConstructor<TNamespace>) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.flag = cfg.flag;\r\n this._data = cfg.data;\r\n this.data = convertLang<TNamespace>(cfg.data);\r\n }\r\n mergeLocale(locale: DBILocale<TNamespace>): DBILocale<TNamespace> {\r\n this._data = stuffs.defaultify(locale._data, this._data, true) as any;\r\n this.data = convertLang<TNamespace>(this._data);\r\n\r\n locale.data = this.data;\r\n locale._data = this._data;\r\n\r\n return this;\r\n }\r\n}\r\n\r\nexport function convertLang<TNamespace extends NamespaceEnums>(data: DBILangConstructorObject): NamespaceData[TNamespace][\"contentLocale\"] {\r\n return Object.fromEntries(Object.entries(data).map(([key, value]) => {\r\n if (typeof value === \"string\") {\r\n return [key, (...args: any[]) => {\r\n return stuffs.mapReplace(value, args.map((t, i) => [new RegExp(`\\\\{${i}(;[^}]+)?\\\\}`, \"g\"), t]))\r\n }];\r\n } else {\r\n return [key, convertLang(value)];\r\n }\r\n }))\r\n}\r\n"]}
1
+ {"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../../src/types/other/Locale.ts"],"names":[],"mappings":";;;AAuDA,0DASC;;AAhED,4DAA4B;AAG5B,4DAAuB;AAcvB,MAAa,SAAS;IACpB,IAAI,CAAmB;IACvB,IAAI,CAA6C;IACjD,KAAK,CAA2B;IAChC,GAAG,CAAsB;IACzB,IAAI,CAAS;IACb,YAAY,GAAwB,EAAE,GAAsC;QAC1E,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE;YACpD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAAA,CAAC;IACN,CAAC;IACD,WAAW,CAAC,MAA6B;QACvC,IAAI,CAAC,KAAK,GAAG,gBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAQ,CAAC;QACtE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,GAAG,CAAC,IAAY;QACd,OAAO,gBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAY,EAAE,IAAI,CAAW,IAAI,IAAI,CAAC;IAC1D,CAAC;IACD,MAAM,CAAC,IAAY,EAAE,GAAG,IAAW;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC,aAAa;gBAAE,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;oBACrE,MAAM,EAAE,IAAI;oBACZ,IAAI;iBACL,CAAC,CAAC;YACH,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,gBAAM,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,CAAC;CACF;AApCD,8BAoCC;AAED,SAAgB,uBAAuB,CAAC,WAAuD,EAAE,OAAiB,EAAE;IAClH,OAAO,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;QAC1B,GAAG,CAAC,MAAM,EAAE,GAAG;YACb,OAAO,uBAAuB,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI;YACzB,OAAO,WAAW,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import stuffs from \"stuffs\";\r\nimport { NamespaceData, NamespaceEnums } from \"../../../generated/namespaceData\";\r\nimport { DBI } from \"../../DBI\";\r\nimport _ from \"lodash\";\r\n\r\nexport interface DBILangObject {\r\n [property: string]: DBILangObject & ((...args: any[]) => string);\r\n}\r\n\r\nexport interface DBILangConstructorObject {\r\n [property: string]: DBILangConstructorObject | string;\r\n}\r\n\r\nexport type TDBILocaleString = \"en\" | \"bg\" | \"zh\" | \"hr\" | \"cs\" | \"da\" | \"nl\" | \"fi\" | \"fr\" | \"de\" | \"el\" | \"hi\" | \"hu\" | \"it\" | \"ja\" | \"ko\" | \"no\" | \"pl\" | \"pt\" | \"ro\" | \"ru\" | \"es\" | \"sv\" | \"th\" | \"tr\" | \"uk\" | \"vi\";\r\n\r\nexport type TDBILocaleConstructor<TNamespace extends NamespaceEnums> = Omit<DBILocale<TNamespace>, \"data\" | \"dbi\" | \"mergeLocale\"> & { data: DBILangConstructorObject };\r\n\r\nexport class DBILocale<TNamespace extends NamespaceEnums> {\r\n name: TDBILocaleString;\r\n data: NamespaceData[TNamespace][\"contentLocale\"];\r\n _data: DBILangConstructorObject;\r\n dbi: DBI<TNamespace, {}>;\r\n flag?: string\r\n constructor(dbi: DBI<TNamespace, {}>, cfg: TDBILocaleConstructor<TNamespace>) {\r\n this.dbi = dbi;\r\n this.name = cfg.name;\r\n this.flag = cfg.flag;\r\n this._data = cfg.data;\r\n this.data = createInfinitePathProxy((path, ...args) => {\r\n return this.format(path.join(\".\"), ...args);\r\n });;\r\n }\r\n mergeLocale(locale: DBILocale<TNamespace>): DBILocale<TNamespace> {\r\n this._data = stuffs.defaultify(locale._data, this._data, true) as any;\r\n locale._data = this._data;\r\n\r\n return this;\r\n }\r\n get(path: string): string | null {\r\n return _.get(this._data as any, path) as string || null;\r\n }\r\n format(path: string, ...args: any[]): string {\r\n const value = this.get(path);\r\n if (!value) {\r\n const defaultLocale = this.dbi.locale(this.dbi.config.defaults.locale.name);\r\n if (!defaultLocale) return this.dbi.config.defaults.locale.invalidPath({\r\n locale: this,\r\n path,\r\n });\r\n return defaultLocale.format(path, ...args);\r\n }\r\n return stuffs.mapReplace(value, args.map((t, i) => [new RegExp(`\\\\{${i}(;[^}]+)?\\\\}`, \"g\"), t]));\r\n }\r\n}\r\n\r\nexport function createInfinitePathProxy(onApplyPath: (path: string[], ...args: any[]) => string, path: string[] = []): any {\r\n return new Proxy(() => { }, {\r\n get(target, key) {\r\n return createInfinitePathProxy(onApplyPath, [...path, key.toString()]);\r\n },\r\n apply(target, thisArg, args) {\r\n return onApplyPath(path, ...args);\r\n }\r\n });\r\n}"]}
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "dependencies": {
3
- "@discordjs/rest": "^1.0.1",
4
- "async-and-quick": "^1.0.2",
5
- "discord-api-types": "^0.37.0",
6
- "discord-hybrid-sharding": "github:meister03/discord-hybrid-sharding",
7
- "discord.js": "^14.13.0",
8
- "lodash": "^4.17.21",
9
- "plsargs": "^0.1.6",
10
- "snakecase-keys": "^5.4.2",
11
- "stuffs": "^0.1.21",
12
- "tslib": "^2.6.3"
13
- },
14
- "name": "@mostfeatured/dbi",
15
- "version": "0.1.21",
16
- "main": "dist/index.js",
17
- "type": "commonjs",
18
- "private": false,
19
- "scripts": {
20
- "test": "npx tsc && node dist/test",
21
- "build": "npx tsc",
22
- "prepublish": "npx tsc",
23
- "publish:dev": "npx tsc && npm publish --tag dev",
24
- "publish:release": "npx tsc && npm publish"
25
- },
26
- "repository": {
27
- "type": "git",
28
- "url": "git+https://github.com/MostFeatured/DiscordBotInfrastructure.git"
29
- },
30
- "author": "Kıraç Armağan Önal",
31
- "license": "GPL-3.0-or-later",
32
- "bugs": {
33
- "url": "https://github.com/MostFeatured/DiscordBotInfrastructure/issues"
34
- },
35
- "homepage": "https://github.com/MostFeatured/DiscordBotInfrastructure#readme",
36
- "description": "",
37
- "devDependencies": {
38
- "@types/lodash": "^4.14.182",
39
- "typescript": "^5.2.2"
40
- },
41
- "publishConfig": {
42
- "access": "public",
43
- "registry": "https://registry.npmjs.org/"
44
- }
1
+ {
2
+ "dependencies": {
3
+ "@discordjs/rest": "^2.3.0",
4
+ "async-and-quick": "^1.0.2",
5
+ "discord-api-types": "^0.37.0",
6
+ "discord-hybrid-sharding": "github:meister03/discord-hybrid-sharding",
7
+ "discord.js": "^14.13.0",
8
+ "lodash": "^4.17.21",
9
+ "plsargs": "^0.1.6",
10
+ "snakecase-keys": "^8.0.1",
11
+ "stuffs": "^0.1.21",
12
+ "tslib": "^2.6.3"
13
+ },
14
+ "name": "@mostfeatured/dbi",
15
+ "version": "0.1.22",
16
+ "main": "dist/index.js",
17
+ "type": "commonjs",
18
+ "private": false,
19
+ "scripts": {
20
+ "test": "npx tsc && node dist/test",
21
+ "build": "npx tsc",
22
+ "prepublish": "npx tsc",
23
+ "publish:dev": "npx tsc && npm publish --tag dev",
24
+ "publish:release": "npx tsc && npm publish"
25
+ },
26
+ "repository": {
27
+ "type": "git",
28
+ "url": "git+https://github.com/MostFeatured/DiscordBotInfrastructure.git"
29
+ },
30
+ "author": "Kıraç Armağan Önal",
31
+ "license": "GPL-3.0-or-later",
32
+ "bugs": {
33
+ "url": "https://github.com/MostFeatured/DiscordBotInfrastructure/issues"
34
+ },
35
+ "homepage": "https://github.com/MostFeatured/DiscordBotInfrastructure#readme",
36
+ "description": "",
37
+ "devDependencies": {
38
+ "@types/lodash": "^4.14.182",
39
+ "typescript": "^5.2.2"
40
+ },
41
+ "publishConfig": {
42
+ "access": "public",
43
+ "registry": "https://registry.npmjs.org/"
44
+ }
45
45
  }
package/readme.md CHANGED
@@ -26,7 +26,9 @@ let dbi = createDBI("xd", {
26
26
  }
27
27
  },
28
28
  defaults: {
29
- locale: "en",
29
+ locale: {
30
+ name: "en"
31
+ },
30
32
  defaultMemberPermissions: ["SendMessages"],
31
33
  directMessages: false
32
34
  },