@magicyan/discord 1.4.2 → 1.4.4

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,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- const discord_js = require('discord.js');
4
- const selectmenu = require('../../guards/selectmenu.cjs');
5
3
  const attachment = require('../../guards/attachment.cjs');
4
+ const button = require('../../guards/button.cjs');
5
+ const selectmenu = require('../../guards/selectmenu.cjs');
6
6
  const gallery = require('./gallery.cjs');
7
- const text = require('./text.cjs');
8
7
  const row = require('./row.cjs');
8
+ const text = require('./text.cjs');
9
9
 
10
10
  function createComponents(...data) {
11
11
  return data.filter((value) => value !== null && value !== void 0).map((component) => {
@@ -15,7 +15,10 @@ function createComponents(...data) {
15
15
  if (Array.isArray(component)) {
16
16
  return row.createRow(...component);
17
17
  }
18
- if (selectmenu.isAnySelectMenuBuilder(component) || component instanceof discord_js.ButtonBuilder) {
18
+ if (selectmenu.isAnySelectMenuBuilder(component)) {
19
+ return row.createRow(component);
20
+ }
21
+ if (button.isButtonBuilder(component)) {
19
22
  return row.createRow(component);
20
23
  }
21
24
  if (attachment.isAttachment(component)) {
@@ -1,9 +1,9 @@
1
- import { ButtonBuilder } from 'discord.js';
2
- import { isAnySelectMenuBuilder } from '../../guards/selectmenu.mjs';
3
1
  import { isAttachment } from '../../guards/attachment.mjs';
2
+ import { isButtonBuilder } from '../../guards/button.mjs';
3
+ import { isAnySelectMenuBuilder } from '../../guards/selectmenu.mjs';
4
4
  import { createMediaGallery } from './gallery.mjs';
5
- import { createTextDisplay } from './text.mjs';
6
5
  import { createRow } from './row.mjs';
6
+ import { createTextDisplay } from './text.mjs';
7
7
 
8
8
  function createComponents(...data) {
9
9
  return data.filter((value) => value !== null && value !== void 0).map((component) => {
@@ -13,7 +13,10 @@ function createComponents(...data) {
13
13
  if (Array.isArray(component)) {
14
14
  return createRow(...component);
15
15
  }
16
- if (isAnySelectMenuBuilder(component) || component instanceof ButtonBuilder) {
16
+ if (isAnySelectMenuBuilder(component)) {
17
+ return createRow(component);
18
+ }
19
+ if (isButtonBuilder(component)) {
17
20
  return createRow(component);
18
21
  }
19
22
  if (isAttachment(component)) {
@@ -2,11 +2,11 @@
2
2
 
3
3
  const core = require('@magicyan/core');
4
4
  const discord_js = require('discord.js');
5
- const selectmenu = require('../../guards/selectmenu.cjs');
6
5
  const attachment = require('../../guards/attachment.cjs');
6
+ const selectmenu = require('../../guards/selectmenu.cjs');
7
7
  const gallery = require('./gallery.cjs');
8
- const text = require('./text.cjs');
9
8
  const row = require('./row.cjs');
9
+ const text = require('./text.cjs');
10
10
 
11
11
  function createContainer(data) {
12
12
  const container = new discord_js.ContainerBuilder();
@@ -1,10 +1,10 @@
1
1
  import { hexToRgb } from '@magicyan/core';
2
2
  import { ContainerBuilder, Colors, TextDisplayBuilder, ActionRowBuilder, ButtonBuilder, SectionBuilder, FileBuilder, MediaGalleryBuilder, SeparatorBuilder } from 'discord.js';
3
- import { isAnySelectMenuBuilder } from '../../guards/selectmenu.mjs';
4
3
  import { isAttachment } from '../../guards/attachment.mjs';
4
+ import { isAnySelectMenuBuilder } from '../../guards/selectmenu.mjs';
5
5
  import { createMediaGallery } from './gallery.mjs';
6
- import { createTextDisplay } from './text.mjs';
7
6
  import { createRow } from './row.mjs';
7
+ import { createTextDisplay } from './text.mjs';
8
8
 
9
9
  function createContainer(data) {
10
10
  const container = new ContainerBuilder();
@@ -6,17 +6,33 @@ const thumbnail = require('./thumbnail.cjs');
6
6
 
7
7
  function createSection(data) {
8
8
  const section = new discord_js.SectionBuilder();
9
- if (data.button) {
10
- section.setButtonAccessory(data.button);
11
- }
12
- if (data.thumbnail) {
13
- section.setThumbnailAccessory(
14
- thumbnail.createThumbnail(data.thumbnail)
9
+ function setAccessory(data2) {
10
+ if (data2 instanceof discord_js.ButtonBuilder) {
11
+ return section.setButtonAccessory(data2);
12
+ }
13
+ if (data2 instanceof discord_js.ThumbnailBuilder) {
14
+ return section.setThumbnailAccessory(data2);
15
+ }
16
+ if (typeof data2 === "string") {
17
+ return section.setThumbnailAccessory(
18
+ thumbnail.createThumbnail(data2)
19
+ );
20
+ }
21
+ if ("media" in data2 || "description" in data2) {
22
+ return section.setThumbnailAccessory(
23
+ thumbnail.createThumbnail(data2)
24
+ );
25
+ }
26
+ return section.setButtonAccessory(
27
+ new discord_js.ButtonBuilder(data2)
15
28
  );
16
29
  }
30
+ if (data.accessory || data.button || data.thumbnail) {
31
+ setAccessory(data.accessory ?? data.button ?? data.thumbnail);
32
+ }
17
33
  if (Array.isArray(data.content)) {
18
34
  section.addTextDisplayComponents(
19
- data.content.map(text.createTextDisplay)
35
+ data.content.map((text$1) => text.createTextDisplay(text$1))
20
36
  );
21
37
  } else {
22
38
  section.addTextDisplayComponents(
@@ -1,20 +1,36 @@
1
- import { SectionBuilder } from 'discord.js';
1
+ import { SectionBuilder, ButtonBuilder, ThumbnailBuilder } from 'discord.js';
2
2
  import { createTextDisplay } from './text.mjs';
3
3
  import { createThumbnail } from './thumbnail.mjs';
4
4
 
5
5
  function createSection(data) {
6
6
  const section = new SectionBuilder();
7
- if (data.button) {
8
- section.setButtonAccessory(data.button);
9
- }
10
- if (data.thumbnail) {
11
- section.setThumbnailAccessory(
12
- createThumbnail(data.thumbnail)
7
+ function setAccessory(data2) {
8
+ if (data2 instanceof ButtonBuilder) {
9
+ return section.setButtonAccessory(data2);
10
+ }
11
+ if (data2 instanceof ThumbnailBuilder) {
12
+ return section.setThumbnailAccessory(data2);
13
+ }
14
+ if (typeof data2 === "string") {
15
+ return section.setThumbnailAccessory(
16
+ createThumbnail(data2)
17
+ );
18
+ }
19
+ if ("media" in data2 || "description" in data2) {
20
+ return section.setThumbnailAccessory(
21
+ createThumbnail(data2)
22
+ );
23
+ }
24
+ return section.setButtonAccessory(
25
+ new ButtonBuilder(data2)
13
26
  );
14
27
  }
28
+ if (data.accessory || data.button || data.thumbnail) {
29
+ setAccessory(data.accessory ?? data.button ?? data.thumbnail);
30
+ }
15
31
  if (Array.isArray(data.content)) {
16
32
  section.addTextDisplayComponents(
17
- data.content.map(createTextDisplay)
33
+ data.content.map((text) => createTextDisplay(text))
18
34
  );
19
35
  } else {
20
36
  section.addTextDisplayComponents(
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ const discord_js = require('discord.js');
4
+
5
+ function isButtonBuilder(value) {
6
+ return value instanceof discord_js.ButtonBuilder;
7
+ }
8
+
9
+ exports.isButtonBuilder = isButtonBuilder;
@@ -0,0 +1,7 @@
1
+ import { ButtonBuilder } from 'discord.js';
2
+
3
+ function isButtonBuilder(value) {
4
+ return value instanceof ButtonBuilder;
5
+ }
6
+
7
+ export { isButtonBuilder };
package/dist/index.cjs CHANGED
@@ -30,6 +30,7 @@ const regex = require('./functions/regex.cjs');
30
30
  const webhooks = require('./functions/webhooks.cjs');
31
31
  const attachment = require('./guards/attachment.cjs');
32
32
  const selectmenu = require('./guards/selectmenu.cjs');
33
+ const button = require('./guards/button.cjs');
33
34
  const core = require('@magicyan/core');
34
35
 
35
36
 
@@ -71,6 +72,7 @@ exports.extractMentionId = regex.extractMentionId;
71
72
  exports.createWebhookClient = webhooks.createWebhookClient;
72
73
  exports.isAttachment = attachment.isAttachment;
73
74
  exports.isAnySelectMenuBuilder = selectmenu.isAnySelectMenuBuilder;
75
+ exports.isButtonBuilder = button.isButtonBuilder;
74
76
  Object.keys(core).forEach(function (k) {
75
77
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = core[k];
76
78
  });
package/dist/index.d.cts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, ContainerComponentData, RGBTuple, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
3
- import * as _discordjs_builders from '/home/rinckodev/projects/npm/magicyan/node_modules/@discordjs/builders/dist/index.d.ts';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, ButtonComponentData, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, RGBTuple, ContainerComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
4
3
  export * from '@magicyan/core';
5
4
 
6
5
  declare const chars: {
@@ -323,14 +322,23 @@ type ThumbnailData = Partial<Omit<ThumbnailComponentData, "type">> | Attachment
323
322
  */
324
323
  declare function createThumbnail(data: ThumbnailData): ThumbnailBuilder;
325
324
 
326
- type SectionAcessoryData = {
325
+ type SectionThumbnailAccessory = ThumbnailBuilder | ThumbnailData;
326
+ type SectionButtonAccessory = ButtonBuilder | Partial<ButtonComponentData>;
327
+ type SectionAccessory = SectionThumbnailAccessory | SectionButtonAccessory;
328
+ type SectionAccessoryData = {
329
+ accessory: SectionAccessory;
327
330
  button?: never;
328
- thumbnail: ThumbnailData;
331
+ thumbnail?: never;
329
332
  } | {
330
- button: ButtonBuilder;
333
+ button: SectionButtonAccessory;
331
334
  thumbnail?: never;
335
+ accessory?: never;
336
+ } | {
337
+ thumbnail: SectionThumbnailAccessory;
338
+ button?: never;
339
+ accessory?: never;
332
340
  };
333
- type SectionData = SectionAcessoryData & {
341
+ type SectionData = SectionAccessoryData & {
334
342
  content: string | string[];
335
343
  };
336
344
  /**
@@ -397,12 +405,13 @@ declare function createSection(data: SectionData): SectionBuilder;
397
405
  */
398
406
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
399
407
 
400
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | AttachmentBuilder | AttachmentBuilder | string | null | undefined;
401
- declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (_discordjs_builders.ButtonBuilder | TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
408
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
409
+ declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
402
410
 
403
411
  type PresetColor = keyof typeof Colors;
412
+ type ContainerColor = (string & {}) | number | null | RGBTuple | PresetColor;
404
413
  interface ContainerData extends Omit<ContainerComponentData, "accentColor" | "type" | "components"> {
405
- accentColor?: (string & {}) | number | null | RGBTuple | PresetColor;
414
+ accentColor?: ContainerColor;
406
415
  components: ComponentData[];
407
416
  }
408
417
  /**
@@ -596,5 +605,7 @@ declare function isAttachment(value: unknown): value is Attachment | AttachmentB
596
605
  type AnySelectMenuBuilder = StringSelectMenuBuilder | UserSelectMenuBuilder | RoleSelectMenuBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder;
597
606
  declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuBuilder;
598
607
 
599
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, modalFieldsToRecord, setMobileStatus };
600
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAcessoryData, SectionData, SeparatorData, ThumbnailData };
608
+ declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
609
+
610
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus };
611
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
package/dist/index.d.mts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, ContainerComponentData, RGBTuple, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
3
- import * as _discordjs_builders from '/home/rinckodev/projects/npm/magicyan/node_modules/@discordjs/builders/dist/index.d.ts';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, ButtonComponentData, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, RGBTuple, ContainerComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
4
3
  export * from '@magicyan/core';
5
4
 
6
5
  declare const chars: {
@@ -323,14 +322,23 @@ type ThumbnailData = Partial<Omit<ThumbnailComponentData, "type">> | Attachment
323
322
  */
324
323
  declare function createThumbnail(data: ThumbnailData): ThumbnailBuilder;
325
324
 
326
- type SectionAcessoryData = {
325
+ type SectionThumbnailAccessory = ThumbnailBuilder | ThumbnailData;
326
+ type SectionButtonAccessory = ButtonBuilder | Partial<ButtonComponentData>;
327
+ type SectionAccessory = SectionThumbnailAccessory | SectionButtonAccessory;
328
+ type SectionAccessoryData = {
329
+ accessory: SectionAccessory;
327
330
  button?: never;
328
- thumbnail: ThumbnailData;
331
+ thumbnail?: never;
329
332
  } | {
330
- button: ButtonBuilder;
333
+ button: SectionButtonAccessory;
331
334
  thumbnail?: never;
335
+ accessory?: never;
336
+ } | {
337
+ thumbnail: SectionThumbnailAccessory;
338
+ button?: never;
339
+ accessory?: never;
332
340
  };
333
- type SectionData = SectionAcessoryData & {
341
+ type SectionData = SectionAccessoryData & {
334
342
  content: string | string[];
335
343
  };
336
344
  /**
@@ -397,12 +405,13 @@ declare function createSection(data: SectionData): SectionBuilder;
397
405
  */
398
406
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
399
407
 
400
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | AttachmentBuilder | AttachmentBuilder | string | null | undefined;
401
- declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (_discordjs_builders.ButtonBuilder | TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
408
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
409
+ declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
402
410
 
403
411
  type PresetColor = keyof typeof Colors;
412
+ type ContainerColor = (string & {}) | number | null | RGBTuple | PresetColor;
404
413
  interface ContainerData extends Omit<ContainerComponentData, "accentColor" | "type" | "components"> {
405
- accentColor?: (string & {}) | number | null | RGBTuple | PresetColor;
414
+ accentColor?: ContainerColor;
406
415
  components: ComponentData[];
407
416
  }
408
417
  /**
@@ -596,5 +605,7 @@ declare function isAttachment(value: unknown): value is Attachment | AttachmentB
596
605
  type AnySelectMenuBuilder = StringSelectMenuBuilder | UserSelectMenuBuilder | RoleSelectMenuBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder;
597
606
  declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuBuilder;
598
607
 
599
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, modalFieldsToRecord, setMobileStatus };
600
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAcessoryData, SectionData, SeparatorData, ThumbnailData };
608
+ declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
609
+
610
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus };
611
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, ContainerComponentData, RGBTuple, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
3
- import * as _discordjs_builders from '/home/rinckodev/projects/npm/magicyan/node_modules/@discordjs/builders/dist/index.d.ts';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ButtonBuilder, LinkButtonComponentData, AnyComponentBuilder, ActionRowBuilder, FileBuilder, APIUnfurledMediaItem, MediaGalleryBuilder, MediaGalleryItemData, SeparatorBuilder, ThumbnailComponentData, ThumbnailBuilder, ButtonComponentData, SectionBuilder, TextDisplayBuilder, MessageActionRowComponentBuilder, ContainerBuilder, Colors, RGBTuple, ContainerComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitInteraction, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role, WebhookClientOptions, WebhookClient, WebhookClientData, StringSelectMenuBuilder, UserSelectMenuBuilder, RoleSelectMenuBuilder, ChannelSelectMenuBuilder, MentionableSelectMenuBuilder } from 'discord.js';
4
3
  export * from '@magicyan/core';
5
4
 
6
5
  declare const chars: {
@@ -323,14 +322,23 @@ type ThumbnailData = Partial<Omit<ThumbnailComponentData, "type">> | Attachment
323
322
  */
324
323
  declare function createThumbnail(data: ThumbnailData): ThumbnailBuilder;
325
324
 
326
- type SectionAcessoryData = {
325
+ type SectionThumbnailAccessory = ThumbnailBuilder | ThumbnailData;
326
+ type SectionButtonAccessory = ButtonBuilder | Partial<ButtonComponentData>;
327
+ type SectionAccessory = SectionThumbnailAccessory | SectionButtonAccessory;
328
+ type SectionAccessoryData = {
329
+ accessory: SectionAccessory;
327
330
  button?: never;
328
- thumbnail: ThumbnailData;
331
+ thumbnail?: never;
329
332
  } | {
330
- button: ButtonBuilder;
333
+ button: SectionButtonAccessory;
331
334
  thumbnail?: never;
335
+ accessory?: never;
336
+ } | {
337
+ thumbnail: SectionThumbnailAccessory;
338
+ button?: never;
339
+ accessory?: never;
332
340
  };
333
- type SectionData = SectionAcessoryData & {
341
+ type SectionData = SectionAccessoryData & {
334
342
  content: string | string[];
335
343
  };
336
344
  /**
@@ -397,12 +405,13 @@ declare function createSection(data: SectionData): SectionBuilder;
397
405
  */
398
406
  declare function createTextDisplay(content: string, id?: number): TextDisplayBuilder;
399
407
 
400
- type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | AttachmentBuilder | AttachmentBuilder | string | null | undefined;
401
- declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (_discordjs_builders.ButtonBuilder | TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
408
+ type ComponentData = TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder[] | MessageActionRowComponentBuilder | Attachment | AttachmentBuilder | string | null | undefined;
409
+ declare function createComponents(...data: (ComponentData | ContainerBuilder)[]): (TextDisplayBuilder | SeparatorBuilder | FileBuilder | SectionBuilder | MediaGalleryBuilder | ActionRowBuilder<MessageActionRowComponentBuilder> | ContainerBuilder)[];
402
410
 
403
411
  type PresetColor = keyof typeof Colors;
412
+ type ContainerColor = (string & {}) | number | null | RGBTuple | PresetColor;
404
413
  interface ContainerData extends Omit<ContainerComponentData, "accentColor" | "type" | "components"> {
405
- accentColor?: (string & {}) | number | null | RGBTuple | PresetColor;
414
+ accentColor?: ContainerColor;
406
415
  components: ComponentData[];
407
416
  }
408
417
  /**
@@ -596,5 +605,7 @@ declare function isAttachment(value: unknown): value is Attachment | AttachmentB
596
605
  type AnySelectMenuBuilder = StringSelectMenuBuilder | UserSelectMenuBuilder | RoleSelectMenuBuilder | ChannelSelectMenuBuilder | MentionableSelectMenuBuilder;
597
606
  declare function isAnySelectMenuBuilder(value: unknown): value is AnySelectMenuBuilder;
598
607
 
599
- export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, modalFieldsToRecord, setMobileStatus };
600
- export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAcessoryData, SectionData, SeparatorData, ThumbnailData };
608
+ declare function isButtonBuilder(value: unknown): value is ButtonBuilder;
609
+
610
+ export { CustomItents, CustomPartials, EmbedLimit, EmbedPlusBuilder, chars, commandMention, createComponents, createContainer, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createFile, createLinkButton, createMediaGallery, createModalFields, createModalInput, createRow, createSection, createSeparator, createTextDisplay, createThumbnail, createWebhookClient, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, isAnySelectMenuBuilder, isAttachment, isButtonBuilder, modalFieldsToRecord, setMobileStatus };
611
+ export type { AnyEmbedData, AnySelectMenuBuilder, ComponentData, ContainerColor, ContainerData, EmbedPlusAssetData, EmbedPlusAuthorData, EmbedPlusColorData, EmbedPlusData, EmbedPlusFooterData, EmbedPlusProperty, PresetColor, SectionAccessory, SectionAccessoryData, SectionButtonAccessory, SectionData, SectionThumbnailAccessory, SeparatorData, ThumbnailData };
package/dist/index.mjs CHANGED
@@ -28,4 +28,5 @@ export { extractMentionId } from './functions/regex.mjs';
28
28
  export { createWebhookClient } from './functions/webhooks.mjs';
29
29
  export { isAttachment } from './guards/attachment.mjs';
30
30
  export { isAnySelectMenuBuilder } from './guards/selectmenu.mjs';
31
+ export { isButtonBuilder } from './guards/button.mjs';
31
32
  export * from '@magicyan/core';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicyan/discord",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "Simple functions to facilitate discord bot development",
5
5
  "license": "MIT",
6
6
  "type": "module",