@mostfeatured/dbi 0.0.11 → 0.0.12

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.
@@ -35,7 +35,7 @@ function hookInteractionListeners(dbi) {
35
35
  return;
36
36
  }
37
37
  let userLocaleName = inter.locale.split("-")[0];
38
- let userLocale = userLocaleName ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);
38
+ let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);
39
39
  let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split("-")[0] : null;
40
40
  let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
41
41
  let locale = {
@@ -1 +1 @@
1
- {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<Discord.CacheType>) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId?.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = userLocaleName ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : null;\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${inter.user.id}`,\r\n \"Channel\": `${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n locale,\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
1
+ {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord from \"discord.js\";\r\nimport { parseCustomId } from \"../utils/customId\";\r\n\r\nexport function hookInteractionListeners(dbi: DBI): () => any {\r\n async function handle(inter: Discord.Interaction<Discord.CacheType>) {\r\n\r\n const dbiInter =\r\n dbi.data.interactions.find(i => {\r\n let isUsesCustomId = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit());\r\n let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;\r\n return (\r\n (\r\n i.type == \"ChatInput\"\r\n && (inter.isChatInputCommand() || inter.isAutocomplete())\r\n && i.name == [inter.commandName, inter.options.getSubcommandGroup(false), inter.options.getSubcommand(false)].filter(i => !!i).join(\" \")\r\n )\r\n ||\r\n (\r\n (i.type == \"MessageContextMenu\" || i.type == \"UserContextMenu\")\r\n && (inter.isMessageContextMenuCommand() || inter.isUserContextMenuCommand())\r\n && inter.commandName == i.name\r\n )\r\n ||\r\n (\r\n (i.type == \"Button\" || i.type == \"SelectMenu\" || i.type == \"Modal\")\r\n && isUsesCustomId\r\n && parsedId?.name == i.name\r\n )\r\n )\r\n });\r\n \r\n if (!dbiInter) return;\r\n \r\n if (inter.isAutocomplete()) {\r\n let focussed = inter.options.getFocused(true);\r\n let option = (dbiInter.options as any[]).find(i => i.name == focussed.name);\r\n if (option?.onComplete) {\r\n let response = await option.onComplete({\r\n value: focussed.value,\r\n interaction: inter,\r\n dbi\r\n });\r\n await inter.respond(response);\r\n }\r\n return;\r\n }\r\n\r\n let userLocaleName = inter.locale.split(\"-\")[0];\r\n let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);\r\n\r\n let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split(\"-\")[0] : null;\r\n let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;\r\n\r\n let locale = {\r\n user: userLocale,\r\n guild: guildLocale\r\n };\r\n\r\n let data = (inter.isButton() || inter.isSelectMenu() || inter.isModalSubmit()) ? parseCustomId(dbi, inter.customId).data : undefined;\r\n\r\n let rateLimitKeyMap = {\r\n \"User\": `${inter.user.id}`,\r\n \"Channel\": `${inter.channelId || \"Channel\"}`,\r\n \"Guild\": `${inter.guildId || \"Guild\"}`,\r\n \"Member\": `${inter.user.id}_${inter.guildId || \"Guild\"}`,\r\n \"Message\": `${(inter as any)?.message?.id}`\r\n }\r\n\r\n for (const type in rateLimitKeyMap) {\r\n // @ts-ignore\r\n let key = `RateLimit[\"${rateLimitKeyMap[type]}\"]`;\r\n let val = await dbi.config.store.get(key);\r\n if (val && Date.now() > val.at + val.duration) {\r\n await dbi.config.store.delete(key);\r\n val = null;\r\n }\r\n if (val) {\r\n dbi.events.trigger(\"interactionRateLimit\", {\r\n dbi,\r\n interaction: inter,\r\n locale,\r\n data,\r\n rateLimit: {\r\n type: key,\r\n ...val\r\n }\r\n })\r\n return;\r\n }\r\n }\r\n\r\n async function setRateLimit(type: string, duration: number) {\r\n // @ts-ignore\r\n await dbi.config.store.set(`RateLimit[\"${rateLimitKeyMap[type]}\"]`, { at: Date.now(), duration });\r\n }\r\n\r\n let other = {};\r\n\r\n if (!(await dbi.events.trigger(\"beforeInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other }))) return;\r\n\r\n await dbiInter.onExecute({\r\n dbi,\r\n // @ts-ignore\r\n interaction: inter as any,\r\n // @ts-ignore\r\n locale,\r\n setRateLimit,\r\n // @ts-ignore\r\n data,\r\n other\r\n });\r\n \r\n dbi.events.trigger(\"afterInteraction\", { dbi, interaction: inter, locale, setRateLimit, data, other });\r\n }\r\n\r\n dbi.client.on(\"interactionCreate\", handle);\r\n\r\n return () => { \r\n dbi.client.off(\"interactionCreate\", handle);\r\n };\r\n}"]}
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "stuffs": "^0.1.17"
10
10
  },
11
11
  "name": "@mostfeatured/dbi",
12
- "version": "0.0.11",
12
+ "version": "0.0.12",
13
13
  "main": "dist/index.js",
14
14
  "type": "commonjs",
15
15
  "private": false,
@@ -47,7 +47,7 @@ export function hookInteractionListeners(dbi: DBI): () => any {
47
47
  }
48
48
 
49
49
  let userLocaleName = inter.locale.split("-")[0];
50
- let userLocale = userLocaleName ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);
50
+ let userLocale = dbi.data.locales.has(userLocaleName) ? dbi.data.locales.get(userLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale);
51
51
 
52
52
  let guildLocaleName = inter.guild ? inter.guild.preferredLocale.split("-")[0] : null;
53
53
  let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale)) : null;
package/dist/test.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":""}
package/dist/test.js DELETED
@@ -1,46 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const _1 = require(".");
4
- let dbi = (0, _1.createDBI)("asd", {
5
- discord: {
6
- token: "ODI0MjEwMTMyMzUwMDA5MzY2.G8YRue.GPxxFyZTOG0cnijU_O8U9uvBDwf01zuVHBBoKI",
7
- options: {
8
- intents: ["Guilds"]
9
- }
10
- }
11
- });
12
- dbi.register(({ InteractionLocale, ChatInput, ChatInputOptions }) => {
13
- ChatInput({
14
- name: "english command",
15
- description: "english command",
16
- onExecute(ctx) {
17
- ctx.interaction.reply("wow");
18
- },
19
- options: [
20
- ChatInputOptions.string({
21
- name: "value",
22
- description: "..."
23
- })
24
- ]
25
- });
26
- // InteractionLocale({
27
- // name: "english command",
28
- // data: {
29
- // tr: {
30
- // name: "turkce komut",
31
- // description: "turkce komut",
32
- // options: {
33
- // value: {
34
- // name: "deger",
35
- // description: "..."
36
- // }
37
- // }
38
- // }
39
- // }
40
- // })
41
- });
42
- (async () => {
43
- await dbi.load();
44
- await dbi.publish("Guild", "817408899904438282");
45
- })();
46
- //# sourceMappingURL=test.js.map
package/dist/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,wBAA8B;AAE9B,IAAI,GAAG,GAAG,IAAA,YAAS,EAA+B,KAAK,EAAE;IACvD,OAAO,EAAE;QACP,KAAK,EAAE,wEAAwE;QAC/E,OAAO,EAAE;YACP,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB;KACF;CACF,CAAC,CAAC;AAEH,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,EAAE;IAClE,SAAS,CAAC;QACR,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iBAAiB;QAC9B,SAAS,CAAC,GAAG;YACX,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE;YACP,gBAAgB,CAAC,MAAM,CAAC;gBACtB,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,KAAK;aACnB,CAAC;SACH;KACF,CAAC,CAAC;IAEH,sBAAsB;IACtB,6BAA6B;IAC7B,YAAY;IACZ,YAAY;IACZ,8BAA8B;IAC9B,qCAAqC;IACrC,mBAAmB;IACnB,mBAAmB;IACnB,2BAA2B;IAC3B,+BAA+B;IAC/B,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,MAAM;IACN,KAAK;AACP,CAAC,CAAC,CAAC;AAEH,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IACjB,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACnD,CAAC,CAAC,EAAE,CAAC","sourcesContent":["import { createDBI } from \".\";\r\n\r\nlet dbi = createDBI<{ musics: Map<string, any> }>(\"asd\", {\r\n discord: {\r\n token: \"ODI0MjEwMTMyMzUwMDA5MzY2.G8YRue.GPxxFyZTOG0cnijU_O8U9uvBDwf01zuVHBBoKI\",\r\n options: {\r\n intents: [\"Guilds\"]\r\n }\r\n }\r\n});\r\n\r\ndbi.register(({ InteractionLocale, ChatInput, ChatInputOptions }) => {\r\n ChatInput({\r\n name: \"english command\",\r\n description: \"english command\",\r\n onExecute(ctx) {\r\n ctx.interaction.reply(\"wow\");\r\n },\r\n options: [\r\n ChatInputOptions.string({\r\n name: \"value\",\r\n description: \"...\"\r\n })\r\n ]\r\n });\r\n\r\n // InteractionLocale({\r\n // name: \"english command\",\r\n // data: {\r\n // tr: {\r\n // name: \"turkce komut\",\r\n // description: \"turkce komut\",\r\n // options: {\r\n // value: {\r\n // name: \"deger\",\r\n // description: \"...\"\r\n // }\r\n // }\r\n // }\r\n // }\r\n // })\r\n});\r\n\r\n(async () => {\r\n await dbi.load();\r\n await dbi.publish(\"Guild\", \"817408899904438282\");\r\n})();"]}