@mostfeatured/dbi 0.1.35 → 0.1.37

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.
@@ -41,7 +41,7 @@ function hookInteractionListeners(dbi) {
41
41
  isUsesCustomId &&
42
42
  parsedId?.name == dbiInter.name)
43
43
  ||
44
- (parsedId.v2 && dbiInter.type == "HTMLComponentsV2" && parsedId.name == dbiInter.name));
44
+ (parsedId?.v2 && dbiInter.type == "HTMLComponentsV2" && parsedId?.name == dbiInter.name));
45
45
  });
46
46
  if (!dbiInter)
47
47
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"hookInteractionListeners.js","sourceRoot":"","sources":["../../src/methods/hookInteractionListeners.ts"],"names":[],"mappings":"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","sourcesContent":["import { DBI } from \"../DBI\";\r\nimport Discord, { 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((dbiInter) => {\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 (dbiInter.type == \"ChatInput\" &&\r\n (inter.isChatInputCommand() || inter.isAutocomplete()) &&\r\n dbiInter.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 ||\r\n ((dbiInter.type == \"MessageContextMenu\" || dbiInter.type == \"UserContextMenu\") &&\r\n (inter.isMessageContextMenuCommand() ||\r\n inter.isUserContextMenuCommand()) &&\r\n inter.commandName == dbiInter.name)\r\n ||\r\n (componentTypes.includes(dbiInter.type) &&\r\n isUsesCustomId &&\r\n parsedId?.name == dbiInter.name)\r\n ||\r\n (parsedId.v2 && dbiInter.type == \"HTMLComponentsV2\" && parsedId.name == dbiInter.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 parsedId = inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit()\r\n ? parseCustomId(dbi, inter.customId)\r\n : undefined;\r\n\r\n let data = parsedId?.data;\r\n let v2 = parsedId?.v2 || false;\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 v2\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 v2,\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 v2\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 v2\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 v2\r\n };\r\n\r\n\r\n if (dbiInter.type === \"HTMLComponentsV2\") {\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute?.(arg);\r\n\r\n const elementName = data.shift();\r\n dbiInter.handlers.forEach((handler) => {\r\n if (handler.name === elementName) {\r\n handler.onExecute(arg);\r\n }\r\n });\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute?.(arg);\r\n\r\n const elementName = data.shift();\r\n dbiInter.handlers.forEach((handler) => {\r\n if (handler.name === elementName) {\r\n handler.onExecute(arg);\r\n }\r\n });\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 } else {\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\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 v2\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((dbiInter) => {\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 (dbiInter.type == \"ChatInput\" &&\r\n (inter.isChatInputCommand() || inter.isAutocomplete()) &&\r\n dbiInter.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 ||\r\n ((dbiInter.type == \"MessageContextMenu\" || dbiInter.type == \"UserContextMenu\") &&\r\n (inter.isMessageContextMenuCommand() ||\r\n inter.isUserContextMenuCommand()) &&\r\n inter.commandName == dbiInter.name)\r\n ||\r\n (componentTypes.includes(dbiInter.type) &&\r\n isUsesCustomId &&\r\n parsedId?.name == dbiInter.name)\r\n ||\r\n (parsedId?.v2 && dbiInter.type == \"HTMLComponentsV2\" && parsedId?.name == dbiInter.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 parsedId = inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit()\r\n ? parseCustomId(dbi, inter.customId)\r\n : undefined;\r\n\r\n let data = parsedId?.data;\r\n let v2 = parsedId?.v2 || false;\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 v2\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 v2,\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 v2\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 v2\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 v2\r\n };\r\n\r\n\r\n if (dbiInter.type === \"HTMLComponentsV2\") {\r\n if (dbi.config.strict) {\r\n // @ts-ignore\r\n await dbiInter.onExecute?.(arg);\r\n\r\n const elementName = data.shift();\r\n dbiInter.handlers.forEach((handler) => {\r\n if (handler.name === elementName) {\r\n handler.onExecute(arg);\r\n }\r\n });\r\n } else {\r\n try {\r\n // @ts-ignore\r\n await dbiInter.onExecute?.(arg);\r\n\r\n const elementName = data.shift();\r\n dbiInter.handlers.forEach((handler) => {\r\n if (handler.name === elementName) {\r\n handler.onExecute(arg);\r\n }\r\n });\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 } else {\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\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 v2\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 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/types/Components/HTMLComponentsV2/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAwQrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAE,GAAQ,SAWpH"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/types/Components/HTMLComponentsV2/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAyQrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,GAAE,GAAQ,SAWpH"}
@@ -43,7 +43,7 @@ function parseCustomIdAttributes(dbi, dbiName, element) {
43
43
  if (!customId) {
44
44
  let name = element.getAttribute("name");
45
45
  if (!name)
46
- throw new Error("String Select Menu must have a name or custom-id attribute.");
46
+ throw new Error("Element must have a name or custom-id attribute.");
47
47
  customId = (0, customId_1.buildCustomId)(dbi, dbiName, [
48
48
  name,
49
49
  ...parseElementDataAttributes(element.attributes),
@@ -60,12 +60,13 @@ function parseActionRow(dbi, dbiName, actionRow) {
60
60
  };
61
61
  }
62
62
  function parseButton(dbi, dbiName, button) {
63
+ const style = button.getAttribute("style") || button.getAttribute("button-style") || "Primary";
63
64
  return {
64
65
  type: discord_js_1.ComponentType.Button,
65
- style: discord_js_1.ButtonStyle[button.getAttribute("button-style") || button.getAttribute("style") || "Primary"],
66
+ style: discord_js_1.ButtonStyle[style],
66
67
  label: button.textContent?.trim(),
67
68
  emoji: button.getAttribute("emoji"),
68
- custom_id: parseCustomIdAttributes(dbi, dbiName, button),
69
+ custom_id: style !== "Link" && style !== "Premium" ? parseCustomIdAttributes(dbi, dbiName, button) : undefined,
69
70
  disabled: button.hasAttribute("disabled"),
70
71
  url: button.getAttribute("url"),
71
72
  sku_id: button.getAttribute("sku-id"),
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/types/Components/HTMLComponentsV2/parser.ts"],"names":[],"mappings":";;AA2QA,sDAWC;AAtRD,iCAA8B;AAC9B,6BAA0B;AAG1B,2CAAwE;AACxE,sDAAwD;AAExD,MAAM,GAAG,GAAG,IAAI,SAAG,EAAE,CAAC;AAEtB,SAAS,0BAA0B,CAAC,UAAwB;IAC1D,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;SAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SACjD,GAAG,CAAC,IAAI,CAAC,EAAE;QACV,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC;QACV,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACnB,KAAK,QAAQ;gBAAE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC;gBAAC,MAAM;YACtD,KAAK,SAAS;gBAAE,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC;gBAAC,MAAM;YACzD,KAAK,MAAM;gBAAE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAU,CAAC,CAAC;gBAAC,MAAM;YACxD,KAAK,QAAQ,CAAC;YACd;gBAAS,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;gBAAC,MAAM;QACzC,CAAC;QACD,OAAO;YACL,KAAK;YACL,KAAK;SACN,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACrB,IAAI,IAAI,GAAG,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IACtD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAwB,EAAE,OAAe,EAAE,OAAgB;IAC1F,IAAI,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC1F,QAAQ,GAAG,IAAA,wBAAa,EACtB,GAAG,EACH,OAAO,EACP;YACE,IAAI;YACJ,GAAG,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC;SAClD,EACD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAChF,IAAI,CACL,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,GAAwB,EAAE,OAAe,EAAE,SAAkB;IACnF,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,SAAS;QAC7B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACzD,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;KACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAwB,EAAE,OAAe,EAAE,MAAe;IAC7E,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,MAAM;QAC1B,KAAK,EAAE,wBAAW,CAAC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;QACpG,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;QACjC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;QACnC,SAAS,EAAE,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC;QACxD,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;QACzC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC;KACtC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAwB,EAAE,OAAe,EAAE,YAAqB;IACzF,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,IAAI,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAElE,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC7E,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC;YAC/C,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;YACnC,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;SACxC,CAAA;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,YAAY;QAChC,SAAS,EAAE,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC;QAC9D,WAAW,EAAE,YAAY,CAAC,YAAY,CAAC,aAAa,CAAC;QACrD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC;QAC/C,OAAO;KACR,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAwB,EAAE,OAAe,EAAE,UAAmB,EAAE,IAAmB;IAC/G,IAAI,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAChE,IAAI,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhE,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAC3E,OAAO;YACL,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC;YAC3D,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;SAClC,CAAA;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,SAAS,EAAE,uBAAuB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC;QAC5D,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,aAAa,CAAC;QACnD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC;QAC7C,OAAO;KACR,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAwB,EAAE,OAAe,EAAE,cAAuB;IACtF,MAAM,MAAM,GAAG,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,OAAO;QAC3B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3E,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAwB,EAAE,OAAe,EAAE,kBAA2B;IAC9F,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,WAAW;QAC/B,OAAO,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE;KACtD,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAwB,EAAE,OAAe,EAAE,gBAAyB;IAC1F,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,SAAS;QAC7B,KAAK,EAAE;YACL,GAAG,EAAE,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC;SAC1C;KACF,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAwB,EAAE,OAAe,EAAE,mBAA4B;IAChG,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,YAAY;QAChC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzE,OAAO;gBACL,KAAK,EAAE;oBACL,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;iBAC9B;gBACD,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;gBAC/E,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;aACtC,CAAC;QACJ,CAAC,CAAC;KACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAwB,EAAE,OAAe,EAAE,WAAoB;IAChF,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,IAAI;QACxB,IAAI,EAAE;YACJ,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC;SACrC;QACD,OAAO,EAAE,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC;KAC7C,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAwB,EAAE,OAAe,EAAE,gBAAyB;IAC1F,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,SAAS;QAC7B,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC;QACjD,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;KACnE,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAwB,EAAE,OAAe,EAAE,gBAAyB;IAC1F,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAExD,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC,CAAC;QACF,YAAY,EAAE,UAAU,CAAC,gBAAgB,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC7E,OAAO,EAAE,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC;KAClD,CAAA;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAwB,EAAE,OAAe,EAAE,eAAwB;IACzF,IAAI,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,IAAI,SAAS,GAAG,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;IAErE,OAAO;QACL,IAAI,EAAE,0BAAa,CAAC,SAAS;QAC7B,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC;QAC1F,KAAK,EAAE,2BAAc,CAAC,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;QACtH,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;QAC5C,WAAW,EAAE,eAAe,CAAC,YAAY,CAAC,aAAa,CAAC;QACxD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;QACrD,QAAQ,EAAE,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC;QAClD,KAAK,EAAE,eAAe,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;KACpF,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,YAAY,CAAC,GAAwB,EAAE,OAAe,EAAE,OAAgB;IAC/E,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,YAAY;YACf,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,KAAK,eAAe;YAClB,OAAO,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,aAAa;YAChB,OAAO,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAAa,CAAC,UAAU,CAAC,CAAC;QAC/E,KAAK,aAAa;YAChB,OAAO,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAAa,CAAC,UAAU,CAAC,CAAC;QAC/E,KAAK,oBAAoB;YACvB,OAAO,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAAa,CAAC,iBAAiB,CAAC,CAAC;QACtF,KAAK,gBAAgB;YACnB,OAAO,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,0BAAa,CAAC,aAAa,CAAC,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC7C,KAAK,cAAc;YACjB,OAAO,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,eAAe;YAClB,OAAO,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,WAAW;YACd,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,KAAK,YAAY;YACf,OAAO,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,GAAwB,EAAE,QAAgB,EAAE,OAAe,EAAE,EAAE,IAAI,KAAU,EAAE;IACnH,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,IAAI,aAAK,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAE5F,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { JSDOM } from \"jsdom\";\r\nimport { Eta } from \"eta\";\r\nimport { DBI } from \"../../../DBI\";\r\nimport { NamespaceEnums } from \"../../../../generated/namespaceData\";\r\nimport { ButtonStyle, ComponentType, TextInputStyle } from \"discord.js\";\r\nimport { buildCustomId } from \"../../../utils/customId\";\r\n\r\nconst eta = new Eta();\r\n\r\nfunction parseElementDataAttributes(attributes: NamedNodeMap): any[] {\r\n let list = Array.from(attributes)\r\n .filter(attr => attr.nodeName.startsWith(\"data-\"))\r\n .map(attr => {\r\n let splited = attr.nodeName.slice(5).split(\":\");\r\n let index = parseInt(splited[0]);\r\n let value;\r\n switch (splited[1]) {\r\n case \"number\": value = Number(attr.nodeValue!); break;\r\n case \"boolean\": value = attr.nodeValue === \"true\"; break;\r\n case \"json\": value = JSON.parse(attr.nodeValue!); break;\r\n case \"string\":\r\n default: value = attr.nodeValue; break;\r\n }\r\n return {\r\n index,\r\n value\r\n };\r\n })\r\n .sort((a, b) => a.index - b.index)\r\n .map(i => i.value);\r\n let data = attributes.getNamedItem(\"data\")?.nodeValue;\r\n return list.length ? list : data ? [data] : [];\r\n}\r\n\r\nfunction parseCustomIdAttributes(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element): string {\r\n let customId = element.getAttribute(\"custom-id\");\r\n if (!customId) {\r\n let name = element.getAttribute(\"name\");\r\n if (!name) throw new Error(\"String Select Menu must have a name or custom-id attribute.\");\r\n customId = buildCustomId(\r\n dbi,\r\n dbiName,\r\n [\r\n name,\r\n ...parseElementDataAttributes(element.attributes),\r\n ],\r\n element.hasAttribute(\"ttl\") ? parseInt(element.getAttribute(\"ttl\")!) : undefined,\r\n true\r\n );\r\n }\r\n return customId;\r\n}\r\n\r\nfunction parseActionRow(dbi: DBI<NamespaceEnums>, dbiName: string, actionRow: Element) {\r\n return {\r\n type: ComponentType.ActionRow,\r\n components: Array.from(actionRow.children).map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n })\r\n }\r\n}\r\n\r\nfunction parseButton(dbi: DBI<NamespaceEnums>, dbiName: string, button: Element) {\r\n return {\r\n type: ComponentType.Button,\r\n style: ButtonStyle[button.getAttribute(\"button-style\") || button.getAttribute(\"style\") || \"Primary\"],\r\n label: button.textContent?.trim(),\r\n emoji: button.getAttribute(\"emoji\"),\r\n custom_id: parseCustomIdAttributes(dbi, dbiName, button),\r\n disabled: button.hasAttribute(\"disabled\"),\r\n url: button.getAttribute(\"url\"),\r\n sku_id: button.getAttribute(\"sku-id\"),\r\n }\r\n}\r\n\r\nfunction parseStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, stringSelect: Element) {\r\n let minValues = parseInt(stringSelect.getAttribute(\"min-values\"));\r\n let maxValues = parseInt(stringSelect.getAttribute(\"max-values\"));\r\n\r\n let options = Array.from(stringSelect.querySelectorAll(\"option\")).map(option => {\r\n return {\r\n label: option.textContent?.trim(),\r\n value: option.getAttribute(\"value\"),\r\n description: option.getAttribute(\"description\"),\r\n emoji: option.getAttribute(\"emoji\"),\r\n default: option.hasAttribute(\"default\")\r\n }\r\n });\r\n\r\n return {\r\n type: ComponentType.StringSelect,\r\n custom_id: parseCustomIdAttributes(dbi, dbiName, stringSelect),\r\n placeholder: stringSelect.getAttribute(\"placeholder\"),\r\n min_values: !isNaN(minValues) ? minValues : undefined,\r\n max_values: !isNaN(maxValues) ? maxValues : undefined,\r\n disabled: stringSelect.hasAttribute(\"disabled\"),\r\n options\r\n }\r\n}\r\n\r\nfunction parseNonStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, userSelect: Element, type: ComponentType) {\r\n let minValues = parseInt(userSelect.getAttribute(\"min-values\"));\r\n let maxValues = parseInt(userSelect.getAttribute(\"max-values\"));\r\n\r\n let options = Array.from(userSelect.querySelectorAll(\"option\")).map(option => {\r\n return {\r\n id: option.textContent?.trim() || option.getAttribute(\"id\"),\r\n type: option.getAttribute(\"type\")\r\n }\r\n });\r\n\r\n return {\r\n type,\r\n custom_id: parseCustomIdAttributes(dbi, dbiName, userSelect),\r\n placeholder: userSelect.getAttribute(\"placeholder\"),\r\n min_values: !isNaN(minValues) ? minValues : undefined,\r\n max_values: !isNaN(maxValues) ? maxValues : undefined,\r\n disabled: userSelect.hasAttribute(\"disabled\"),\r\n options\r\n }\r\n}\r\n\r\nfunction parseSection(dbi: DBI<NamespaceEnums>, dbiName: string, sectionElement: Element) {\r\n const childs = [...sectionElement.children];\r\n const components = childs.find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n const accessory = childs.find(el => el.tagName === \"ACCESSORY\")?.children?.[0];\r\n\r\n return {\r\n type: ComponentType.Section,\r\n components: children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n }),\r\n ...(accessory ? { accessory: parseElement(dbi, dbiName, accessory) } : {})\r\n }\r\n}\r\n\r\nfunction parseTextDisplay(dbi: DBI<NamespaceEnums>, dbiName: string, textDisplayElement: Element) {\r\n return {\r\n type: ComponentType.TextDisplay,\r\n content: textDisplayElement.textContent?.trim() || \"\",\r\n }\r\n}\r\n\r\nfunction parseThumbnail(dbi: DBI<NamespaceEnums>, dbiName: string, thumbnailElement: Element) {\r\n return {\r\n type: ComponentType.Thumbnail,\r\n media: {\r\n url: thumbnailElement.getAttribute(\"url\")\r\n }\r\n }\r\n}\r\n\r\nfunction parseMediaGallery(dbi: DBI<NamespaceEnums>, dbiName: string, mediaGalleryElement: Element) {\r\n return {\r\n type: ComponentType.MediaGallery,\r\n items: Array.from(mediaGalleryElement.querySelectorAll(\"item\")).map(item => {\r\n return {\r\n media: {\r\n url: item.getAttribute(\"url\")\r\n },\r\n description: item.textContent?.trim() || item.getAttribute(\"description\") || \"\",\r\n spoiler: item.hasAttribute(\"spoiler\"),\r\n };\r\n })\r\n }\r\n}\r\n\r\nfunction parseFile(dbi: DBI<NamespaceEnums>, dbiName: string, fileElement: Element) {\r\n return {\r\n type: ComponentType.File,\r\n file: {\r\n url: fileElement.getAttribute(\"url\"),\r\n },\r\n spoiler: fileElement.hasAttribute(\"spoiler\"),\r\n }\r\n}\r\n\r\nfunction parseSeparator(dbi: DBI<NamespaceEnums>, dbiName: string, separatorElement: Element) {\r\n return {\r\n type: ComponentType.Separator,\r\n divider: separatorElement.hasAttribute(\"divider\"),\r\n spacing: parseInt(separatorElement.getAttribute(\"spacing\") || '1'),\r\n }\r\n}\r\n\r\nfunction parseContainer(dbi: DBI<NamespaceEnums>, dbiName: string, containerElement: Element) {\r\n const components = [...containerElement.children].find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n return {\r\n type: ComponentType.Container,\r\n components: children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n }),\r\n accent_color: parseColor(containerElement.getAttribute(\"accent-color\") || \"\"),\r\n spoiler: containerElement.hasAttribute(\"spoiler\"),\r\n }\r\n}\r\n\r\nfunction parseTextInput(dbi: DBI<NamespaceEnums>, dbiName: string, textInputSelect: Element) {\r\n let minLength = parseInt(textInputSelect.getAttribute(\"min-length\"));\r\n let maxLength = parseInt(textInputSelect.getAttribute(\"max-length\"));\r\n\r\n return {\r\n type: ComponentType.TextInput,\r\n custom_id: textInputSelect.getAttribute(\"custom-id\") || textInputSelect.getAttribute(\"id\"),\r\n style: TextInputStyle[textInputSelect.getAttribute(\"input-style\") || textInputSelect.getAttribute(\"style\") || \"Short\"],\r\n label: textInputSelect.getAttribute(\"label\"),\r\n placeholder: textInputSelect.getAttribute(\"placeholder\"),\r\n min_length: !isNaN(minLength) ? minLength : undefined,\r\n max_length: !isNaN(maxLength) ? maxLength : undefined,\r\n required: textInputSelect.hasAttribute(\"required\"),\r\n value: textInputSelect.textContent?.trim() || textInputSelect.getAttribute(\"value\"),\r\n }\r\n}\r\n\r\nfunction parseColor(color: string) {\r\n if (!color) return;\r\n if (/\\d{3,6}/.test(color)) return parseInt(color, 10);\r\n if (color.startsWith(\"#\")) return parseInt(color.slice(1), 16);\r\n if (color.startsWith(\"0x\")) return parseInt(color.slice(2), 16);\r\n if (color.startsWith(\"rgb(\")) {\r\n const rgb = color.slice(4, -1).split(\",\").map(Number);\r\n return (rgb[0] << 16) + (rgb[1] << 8) + rgb[2];\r\n }\r\n return parseInt(color, 16);\r\n}\r\n\r\nfunction parseElement(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element) {\r\n switch (element.tagName) {\r\n case \"ACTION-ROW\":\r\n return parseActionRow(dbi, dbiName, element);\r\n case \"BUTTON\":\r\n return parseButton(dbi, dbiName, element);\r\n case \"STRING-SELECT\":\r\n return parseStringSelect(dbi, dbiName, element);\r\n case \"USER-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.UserSelect);\r\n case \"ROLE-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.RoleSelect);\r\n case \"MENTIONABLE-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.MentionableSelect);\r\n case \"CHANNEL-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.ChannelSelect);\r\n case \"SECTION\":\r\n return parseSection(dbi, dbiName, element);\r\n case \"TEXT-DISPLAY\":\r\n return parseTextDisplay(dbi, dbiName, element);\r\n case \"THUMBNAIL\":\r\n return parseThumbnail(dbi, dbiName, element);\r\n case \"MEDIA-GALLERY\":\r\n return parseMediaGallery(dbi, dbiName, element);\r\n case \"FILE\":\r\n return parseFile(dbi, dbiName, element);\r\n case \"SEPARATOR\":\r\n return parseSeparator(dbi, dbiName, element);\r\n case \"CONTAINER\":\r\n return parseContainer(dbi, dbiName, element);\r\n case \"TEXT-INPUT\":\r\n return parseTextInput(dbi, dbiName, element);\r\n default:\r\n throw new Error(`Unknown HTML component: ${element.tagName}`);\r\n }\r\n}\r\n\r\nexport function parseHTMLComponentsV2(dbi: DBI<NamespaceEnums>, template: string, dbiName: string, { data }: any = {}) {\r\n const { window: { document } } = new JSDOM(eta.renderString(template, data));\r\n\r\n const components = [...document.body.children].find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n if (!children.length) throw new Error(\"No components found in the provided HTML template.\");\r\n\r\n return children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n });\r\n}"]}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/types/Components/HTMLComponentsV2/parser.ts"],"names":[],"mappings":"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","sourcesContent":["import { JSDOM } from \"jsdom\";\r\nimport { Eta } from \"eta\";\r\nimport { DBI } from \"../../../DBI\";\r\nimport { NamespaceEnums } from \"../../../../generated/namespaceData\";\r\nimport { ButtonStyle, ComponentType, TextInputStyle } from \"discord.js\";\r\nimport { buildCustomId } from \"../../../utils/customId\";\r\n\r\nconst eta = new Eta();\r\n\r\nfunction parseElementDataAttributes(attributes: NamedNodeMap): any[] {\r\n let list = Array.from(attributes)\r\n .filter(attr => attr.nodeName.startsWith(\"data-\"))\r\n .map(attr => {\r\n let splited = attr.nodeName.slice(5).split(\":\");\r\n let index = parseInt(splited[0]);\r\n let value;\r\n switch (splited[1]) {\r\n case \"number\": value = Number(attr.nodeValue!); break;\r\n case \"boolean\": value = attr.nodeValue === \"true\"; break;\r\n case \"json\": value = JSON.parse(attr.nodeValue!); break;\r\n case \"string\":\r\n default: value = attr.nodeValue; break;\r\n }\r\n return {\r\n index,\r\n value\r\n };\r\n })\r\n .sort((a, b) => a.index - b.index)\r\n .map(i => i.value);\r\n let data = attributes.getNamedItem(\"data\")?.nodeValue;\r\n return list.length ? list : data ? [data] : [];\r\n}\r\n\r\nfunction parseCustomIdAttributes(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element): string {\r\n let customId = element.getAttribute(\"custom-id\");\r\n if (!customId) {\r\n let name = element.getAttribute(\"name\");\r\n if (!name) throw new Error(\"Element must have a name or custom-id attribute.\");\r\n customId = buildCustomId(\r\n dbi,\r\n dbiName,\r\n [\r\n name,\r\n ...parseElementDataAttributes(element.attributes),\r\n ],\r\n element.hasAttribute(\"ttl\") ? parseInt(element.getAttribute(\"ttl\")!) : undefined,\r\n true\r\n );\r\n }\r\n return customId;\r\n}\r\n\r\nfunction parseActionRow(dbi: DBI<NamespaceEnums>, dbiName: string, actionRow: Element) {\r\n return {\r\n type: ComponentType.ActionRow,\r\n components: Array.from(actionRow.children).map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n })\r\n }\r\n}\r\n\r\nfunction parseButton(dbi: DBI<NamespaceEnums>, dbiName: string, button: Element) {\r\n const style = button.getAttribute(\"style\") || button.getAttribute(\"button-style\") || \"Primary\";\r\n return {\r\n type: ComponentType.Button,\r\n style: ButtonStyle[style],\r\n label: button.textContent?.trim(),\r\n emoji: button.getAttribute(\"emoji\"),\r\n custom_id: style !== \"Link\" && style !== \"Premium\" ? parseCustomIdAttributes(dbi, dbiName, button) : undefined,\r\n disabled: button.hasAttribute(\"disabled\"),\r\n url: button.getAttribute(\"url\"),\r\n sku_id: button.getAttribute(\"sku-id\"),\r\n }\r\n}\r\n\r\nfunction parseStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, stringSelect: Element) {\r\n let minValues = parseInt(stringSelect.getAttribute(\"min-values\"));\r\n let maxValues = parseInt(stringSelect.getAttribute(\"max-values\"));\r\n\r\n let options = Array.from(stringSelect.querySelectorAll(\"option\")).map(option => {\r\n return {\r\n label: option.textContent?.trim(),\r\n value: option.getAttribute(\"value\"),\r\n description: option.getAttribute(\"description\"),\r\n emoji: option.getAttribute(\"emoji\"),\r\n default: option.hasAttribute(\"default\")\r\n }\r\n });\r\n\r\n return {\r\n type: ComponentType.StringSelect,\r\n custom_id: parseCustomIdAttributes(dbi, dbiName, stringSelect),\r\n placeholder: stringSelect.getAttribute(\"placeholder\"),\r\n min_values: !isNaN(minValues) ? minValues : undefined,\r\n max_values: !isNaN(maxValues) ? maxValues : undefined,\r\n disabled: stringSelect.hasAttribute(\"disabled\"),\r\n options\r\n }\r\n}\r\n\r\nfunction parseNonStringSelect(dbi: DBI<NamespaceEnums>, dbiName: string, userSelect: Element, type: ComponentType) {\r\n let minValues = parseInt(userSelect.getAttribute(\"min-values\"));\r\n let maxValues = parseInt(userSelect.getAttribute(\"max-values\"));\r\n\r\n let options = Array.from(userSelect.querySelectorAll(\"option\")).map(option => {\r\n return {\r\n id: option.textContent?.trim() || option.getAttribute(\"id\"),\r\n type: option.getAttribute(\"type\")\r\n }\r\n });\r\n\r\n return {\r\n type,\r\n custom_id: parseCustomIdAttributes(dbi, dbiName, userSelect),\r\n placeholder: userSelect.getAttribute(\"placeholder\"),\r\n min_values: !isNaN(minValues) ? minValues : undefined,\r\n max_values: !isNaN(maxValues) ? maxValues : undefined,\r\n disabled: userSelect.hasAttribute(\"disabled\"),\r\n options\r\n }\r\n}\r\n\r\nfunction parseSection(dbi: DBI<NamespaceEnums>, dbiName: string, sectionElement: Element) {\r\n const childs = [...sectionElement.children];\r\n const components = childs.find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n const accessory = childs.find(el => el.tagName === \"ACCESSORY\")?.children?.[0];\r\n\r\n return {\r\n type: ComponentType.Section,\r\n components: children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n }),\r\n ...(accessory ? { accessory: parseElement(dbi, dbiName, accessory) } : {})\r\n }\r\n}\r\n\r\nfunction parseTextDisplay(dbi: DBI<NamespaceEnums>, dbiName: string, textDisplayElement: Element) {\r\n return {\r\n type: ComponentType.TextDisplay,\r\n content: textDisplayElement.textContent?.trim() || \"\",\r\n }\r\n}\r\n\r\nfunction parseThumbnail(dbi: DBI<NamespaceEnums>, dbiName: string, thumbnailElement: Element) {\r\n return {\r\n type: ComponentType.Thumbnail,\r\n media: {\r\n url: thumbnailElement.getAttribute(\"url\")\r\n }\r\n }\r\n}\r\n\r\nfunction parseMediaGallery(dbi: DBI<NamespaceEnums>, dbiName: string, mediaGalleryElement: Element) {\r\n return {\r\n type: ComponentType.MediaGallery,\r\n items: Array.from(mediaGalleryElement.querySelectorAll(\"item\")).map(item => {\r\n return {\r\n media: {\r\n url: item.getAttribute(\"url\")\r\n },\r\n description: item.textContent?.trim() || item.getAttribute(\"description\") || \"\",\r\n spoiler: item.hasAttribute(\"spoiler\"),\r\n };\r\n })\r\n }\r\n}\r\n\r\nfunction parseFile(dbi: DBI<NamespaceEnums>, dbiName: string, fileElement: Element) {\r\n return {\r\n type: ComponentType.File,\r\n file: {\r\n url: fileElement.getAttribute(\"url\"),\r\n },\r\n spoiler: fileElement.hasAttribute(\"spoiler\"),\r\n }\r\n}\r\n\r\nfunction parseSeparator(dbi: DBI<NamespaceEnums>, dbiName: string, separatorElement: Element) {\r\n return {\r\n type: ComponentType.Separator,\r\n divider: separatorElement.hasAttribute(\"divider\"),\r\n spacing: parseInt(separatorElement.getAttribute(\"spacing\") || '1'),\r\n }\r\n}\r\n\r\nfunction parseContainer(dbi: DBI<NamespaceEnums>, dbiName: string, containerElement: Element) {\r\n const components = [...containerElement.children].find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n return {\r\n type: ComponentType.Container,\r\n components: children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n }),\r\n accent_color: parseColor(containerElement.getAttribute(\"accent-color\") || \"\"),\r\n spoiler: containerElement.hasAttribute(\"spoiler\"),\r\n }\r\n}\r\n\r\nfunction parseTextInput(dbi: DBI<NamespaceEnums>, dbiName: string, textInputSelect: Element) {\r\n let minLength = parseInt(textInputSelect.getAttribute(\"min-length\"));\r\n let maxLength = parseInt(textInputSelect.getAttribute(\"max-length\"));\r\n\r\n return {\r\n type: ComponentType.TextInput,\r\n custom_id: textInputSelect.getAttribute(\"custom-id\") || textInputSelect.getAttribute(\"id\"),\r\n style: TextInputStyle[textInputSelect.getAttribute(\"input-style\") || textInputSelect.getAttribute(\"style\") || \"Short\"],\r\n label: textInputSelect.getAttribute(\"label\"),\r\n placeholder: textInputSelect.getAttribute(\"placeholder\"),\r\n min_length: !isNaN(minLength) ? minLength : undefined,\r\n max_length: !isNaN(maxLength) ? maxLength : undefined,\r\n required: textInputSelect.hasAttribute(\"required\"),\r\n value: textInputSelect.textContent?.trim() || textInputSelect.getAttribute(\"value\"),\r\n }\r\n}\r\n\r\nfunction parseColor(color: string) {\r\n if (!color) return;\r\n if (/\\d{3,6}/.test(color)) return parseInt(color, 10);\r\n if (color.startsWith(\"#\")) return parseInt(color.slice(1), 16);\r\n if (color.startsWith(\"0x\")) return parseInt(color.slice(2), 16);\r\n if (color.startsWith(\"rgb(\")) {\r\n const rgb = color.slice(4, -1).split(\",\").map(Number);\r\n return (rgb[0] << 16) + (rgb[1] << 8) + rgb[2];\r\n }\r\n return parseInt(color, 16);\r\n}\r\n\r\nfunction parseElement(dbi: DBI<NamespaceEnums>, dbiName: string, element: Element) {\r\n switch (element.tagName) {\r\n case \"ACTION-ROW\":\r\n return parseActionRow(dbi, dbiName, element);\r\n case \"BUTTON\":\r\n return parseButton(dbi, dbiName, element);\r\n case \"STRING-SELECT\":\r\n return parseStringSelect(dbi, dbiName, element);\r\n case \"USER-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.UserSelect);\r\n case \"ROLE-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.RoleSelect);\r\n case \"MENTIONABLE-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.MentionableSelect);\r\n case \"CHANNEL-SELECT\":\r\n return parseNonStringSelect(dbi, dbiName, element, ComponentType.ChannelSelect);\r\n case \"SECTION\":\r\n return parseSection(dbi, dbiName, element);\r\n case \"TEXT-DISPLAY\":\r\n return parseTextDisplay(dbi, dbiName, element);\r\n case \"THUMBNAIL\":\r\n return parseThumbnail(dbi, dbiName, element);\r\n case \"MEDIA-GALLERY\":\r\n return parseMediaGallery(dbi, dbiName, element);\r\n case \"FILE\":\r\n return parseFile(dbi, dbiName, element);\r\n case \"SEPARATOR\":\r\n return parseSeparator(dbi, dbiName, element);\r\n case \"CONTAINER\":\r\n return parseContainer(dbi, dbiName, element);\r\n case \"TEXT-INPUT\":\r\n return parseTextInput(dbi, dbiName, element);\r\n default:\r\n throw new Error(`Unknown HTML component: ${element.tagName}`);\r\n }\r\n}\r\n\r\nexport function parseHTMLComponentsV2(dbi: DBI<NamespaceEnums>, template: string, dbiName: string, { data }: any = {}) {\r\n const { window: { document } } = new JSDOM(eta.renderString(template, data));\r\n\r\n const components = [...document.body.children].find(el => el.tagName === \"COMPONENTS\");\r\n const children = Array.from(components?.children || []);\r\n\r\n if (!children.length) throw new Error(\"No components found in the provided HTML template.\");\r\n\r\n return children.map((element) => {\r\n return parseElement(dbi, dbiName, element);\r\n });\r\n}"]}
package/package.json CHANGED
@@ -14,7 +14,7 @@
14
14
  "tslib": "^2.6.3"
15
15
  },
16
16
  "name": "@mostfeatured/dbi",
17
- "version": "0.1.35",
17
+ "version": "0.1.37",
18
18
  "main": "dist/index.js",
19
19
  "type": "commonjs",
20
20
  "private": false,
@@ -44,7 +44,7 @@ export function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {
44
44
  isUsesCustomId &&
45
45
  parsedId?.name == dbiInter.name)
46
46
  ||
47
- (parsedId.v2 && dbiInter.type == "HTMLComponentsV2" && parsedId.name == dbiInter.name)
47
+ (parsedId?.v2 && dbiInter.type == "HTMLComponentsV2" && parsedId?.name == dbiInter.name)
48
48
  );
49
49
  });
50
50
 
@@ -36,7 +36,7 @@ function parseCustomIdAttributes(dbi: DBI<NamespaceEnums>, dbiName: string, elem
36
36
  let customId = element.getAttribute("custom-id");
37
37
  if (!customId) {
38
38
  let name = element.getAttribute("name");
39
- if (!name) throw new Error("String Select Menu must have a name or custom-id attribute.");
39
+ if (!name) throw new Error("Element must have a name or custom-id attribute.");
40
40
  customId = buildCustomId(
41
41
  dbi,
42
42
  dbiName,
@@ -61,12 +61,13 @@ function parseActionRow(dbi: DBI<NamespaceEnums>, dbiName: string, actionRow: El
61
61
  }
62
62
 
63
63
  function parseButton(dbi: DBI<NamespaceEnums>, dbiName: string, button: Element) {
64
+ const style = button.getAttribute("style") || button.getAttribute("button-style") || "Primary";
64
65
  return {
65
66
  type: ComponentType.Button,
66
- style: ButtonStyle[button.getAttribute("button-style") || button.getAttribute("style") || "Primary"],
67
+ style: ButtonStyle[style],
67
68
  label: button.textContent?.trim(),
68
69
  emoji: button.getAttribute("emoji"),
69
- custom_id: parseCustomIdAttributes(dbi, dbiName, button),
70
+ custom_id: style !== "Link" && style !== "Premium" ? parseCustomIdAttributes(dbi, dbiName, button) : undefined,
70
71
  disabled: button.hasAttribute("disabled"),
71
72
  url: button.getAttribute("url"),
72
73
  sku_id: button.getAttribute("sku-id"),