@discordjs/builders 0.12.0 → 0.13.0-dev.1644067366.5f4b44d

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.
package/dist/index.d.ts CHANGED
@@ -84,58 +84,55 @@ interface FooterOptions {
84
84
  text: string;
85
85
  iconURL?: string;
86
86
  }
87
- /**
88
- * Represents an embed in a message (image/video preview, rich embed, etc.)
89
- */
90
- declare class Embed implements APIEmbed {
87
+ declare class UnsafeEmbed implements APIEmbed {
91
88
  /**
92
89
  * An array of fields of this embed
93
90
  */
94
- fields: APIEmbedField[];
91
+ readonly fields: APIEmbedField[];
95
92
  /**
96
93
  * The embed title
97
94
  */
98
- title?: string;
95
+ readonly title?: string;
99
96
  /**
100
97
  * The embed description
101
98
  */
102
- description?: string;
99
+ readonly description?: string;
103
100
  /**
104
101
  * The embed url
105
102
  */
106
- url?: string;
103
+ readonly url?: string;
107
104
  /**
108
105
  * The embed color
109
106
  */
110
- color?: number;
107
+ readonly color?: number;
111
108
  /**
112
109
  * The timestamp of the embed in the ISO format
113
110
  */
114
- timestamp?: string;
111
+ readonly timestamp?: string;
115
112
  /**
116
113
  * The embed thumbnail data
117
114
  */
118
- thumbnail?: APIEmbedThumbnail;
115
+ readonly thumbnail?: APIEmbedThumbnail;
119
116
  /**
120
117
  * The embed image data
121
118
  */
122
- image?: APIEmbedImage;
119
+ readonly image?: APIEmbedImage;
123
120
  /**
124
121
  * Received video data
125
122
  */
126
- video?: APIEmbedVideo;
123
+ readonly video?: APIEmbedVideo;
127
124
  /**
128
125
  * The embed author data
129
126
  */
130
- author?: APIEmbedAuthor;
127
+ readonly author?: APIEmbedAuthor;
131
128
  /**
132
129
  * Received data about the embed provider
133
130
  */
134
- provider?: APIEmbedProvider;
131
+ readonly provider?: APIEmbedProvider;
135
132
  /**
136
133
  * The embed footer data
137
134
  */
138
- footer?: APIEmbedFooter;
135
+ readonly footer?: APIEmbedFooter;
139
136
  constructor(data?: APIEmbed);
140
137
  /**
141
138
  * The accumulated length for the embed title, description, fields, footer text, and author name
@@ -161,6 +158,11 @@ declare class Embed implements APIEmbed {
161
158
  * @param fields The replacing field objects
162
159
  */
163
160
  spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this;
161
+ /**
162
+ * Sets the embed's fields (max 25).
163
+ * @param fields The fields to set
164
+ */
165
+ setFields(...fields: APIEmbedField[]): this;
164
166
  /**
165
167
  * Sets the author of this embed
166
168
  *
@@ -227,6 +229,29 @@ declare class Embed implements APIEmbed {
227
229
  static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[];
228
230
  }
229
231
 
232
+ /**
233
+ * Represents an embed in a message (image/video preview, rich embed, etc.)
234
+ */
235
+ declare class Embed extends UnsafeEmbed {
236
+ addFields(...fields: APIEmbedField[]): this;
237
+ spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this;
238
+ setAuthor(options: AuthorOptions | null): this;
239
+ setColor(color: number | null): this;
240
+ setDescription(description: string | null): this;
241
+ setFooter(options: FooterOptions | null): this;
242
+ setImage(url: string | null): this;
243
+ setThumbnail(url: string | null): this;
244
+ setTimestamp(timestamp?: number | Date | null): this;
245
+ setTitle(title: string | null): this;
246
+ setURL(url: string | null): this;
247
+ /**
248
+ * Normalizes field input and resolves strings
249
+ *
250
+ * @param fields Fields to normalize
251
+ */
252
+ static normalizeFields(...fields: APIEmbedField[]): APIEmbedField[];
253
+ }
254
+
230
255
  /**
231
256
  * Wraps the content inside a codeblock with no language
232
257
  *
@@ -449,9 +474,9 @@ declare enum Faces {
449
474
  }
450
475
 
451
476
  /**
452
- * Represents an option within a select menu component
477
+ * Represents a non-validated option within a select menu component
453
478
  */
454
- declare class SelectMenuOption {
479
+ declare class UnsafeSelectMenuOption {
455
480
  readonly label: string;
456
481
  readonly value: string;
457
482
  readonly description?: string;
@@ -486,6 +511,16 @@ declare class SelectMenuOption {
486
511
  toJSON(): APISelectMenuOption;
487
512
  }
488
513
 
514
+ /**
515
+ * Represents an option within a select menu component
516
+ */
517
+ declare class SelectMenuOption extends UnsafeSelectMenuOption {
518
+ setDescription(description: string): this;
519
+ setDefault(isDefault: boolean): this;
520
+ setEmoji(emoji: APIMessageComponentEmoji): this;
521
+ toJSON(): APISelectMenuOption;
522
+ }
523
+
489
524
  declare const customIdValidator: z.ZodString;
490
525
  declare const emojiValidator: z.ZodObject<{
491
526
  id: z.ZodOptional<z.ZodString>;
@@ -560,14 +595,17 @@ interface Component {
560
595
  toJSON: () => APIMessageComponent;
561
596
  }
562
597
 
598
+ declare type MessageComponent = ActionRowComponent | ActionRow;
563
599
  declare type ActionRowComponent = ButtonComponent | SelectMenuComponent;
564
600
  /**
565
601
  * Represents an action row component
566
602
  */
567
- declare class ActionRow<T extends ActionRowComponent> implements Component {
603
+ declare class ActionRow<T extends ActionRowComponent = ActionRowComponent> implements Component {
568
604
  readonly components: T[];
569
605
  readonly type = ComponentType.ActionRow;
570
- constructor(data?: APIActionRowComponent);
606
+ constructor(data?: APIActionRowComponent & {
607
+ type?: ComponentType.ActionRow;
608
+ });
571
609
  /**
572
610
  * Adds components to this action row.
573
611
  * @param components The components to add to this action row.
@@ -582,7 +620,7 @@ declare class ActionRow<T extends ActionRowComponent> implements Component {
582
620
  toJSON(): APIActionRowComponent;
583
621
  }
584
622
 
585
- declare class ButtonComponent implements Component {
623
+ declare class UnsafeButtonComponent implements Component {
586
624
  readonly type: ComponentType.Button;
587
625
  readonly style: ButtonStyle;
588
626
  readonly label?: string;
@@ -590,7 +628,9 @@ declare class ButtonComponent implements Component {
590
628
  readonly disabled?: boolean;
591
629
  readonly custom_id: string;
592
630
  readonly url: string;
593
- constructor(data?: APIButtonComponent);
631
+ constructor(data?: APIButtonComponent & {
632
+ type?: ComponentType.Button;
633
+ });
594
634
  /**
595
635
  * Sets the style of this button
596
636
  * @param style The style of the button
@@ -624,8 +664,18 @@ declare class ButtonComponent implements Component {
624
664
  toJSON(): APIButtonComponent;
625
665
  }
626
666
 
667
+ declare class ButtonComponent extends UnsafeButtonComponent {
668
+ setStyle(style: ButtonStyle): this;
669
+ setURL(url: string): this;
670
+ setCustomId(customId: string): this;
671
+ setEmoji(emoji: APIMessageComponentEmoji): this;
672
+ setDisabled(disabled: boolean): this;
673
+ setLabel(label: string): this;
674
+ toJSON(): APIButtonComponent;
675
+ }
676
+
627
677
  interface MappedComponentTypes {
628
- [ComponentType.ActionRow]: ActionRow<ActionRowComponent>;
678
+ [ComponentType.ActionRow]: ActionRow;
629
679
  [ComponentType.Button]: ButtonComponent;
630
680
  [ComponentType.SelectMenu]: SelectMenuComponent;
631
681
  }
@@ -636,11 +686,12 @@ interface MappedComponentTypes {
636
686
  declare function createComponent<T extends keyof MappedComponentTypes>(data: APIMessageComponent & {
637
687
  type: T;
638
688
  }): MappedComponentTypes[T];
689
+ declare function createComponent<C extends MessageComponent>(data: C): C;
639
690
 
640
691
  /**
641
- * Represents a select menu component
692
+ * Represents a non-validated select menu component
642
693
  */
643
- declare class SelectMenuComponent implements Component {
694
+ declare class UnsafeSelectMenuComponent implements Component {
644
695
  readonly type: ComponentType.SelectMenu;
645
696
  readonly options: SelectMenuOption[];
646
697
  readonly placeholder?: string;
@@ -688,6 +739,18 @@ declare class SelectMenuComponent implements Component {
688
739
  toJSON(): APISelectMenuComponent;
689
740
  }
690
741
 
742
+ /**
743
+ * Represents a select menu component
744
+ */
745
+ declare class SelectMenuComponent extends UnsafeSelectMenuComponent {
746
+ setPlaceholder(placeholder: string): this;
747
+ setMinValues(minValues: number): this;
748
+ setMaxValues(maxValues: number): this;
749
+ setCustomId(customId: string): this;
750
+ setDisabled(disabled: boolean): this;
751
+ toJSON(): APISelectMenuComponent;
752
+ }
753
+
691
754
  declare class SharedNameAndDescription {
692
755
  readonly name: string;
693
756
  readonly description: string;
@@ -1081,4 +1144,4 @@ declare namespace Assertions {
1081
1144
  };
1082
1145
  }
1083
1146
 
1084
- export { ActionRow, ActionRowComponent, AuthorOptions, ButtonComponent, Component, Assertions$2 as ComponentAssertions, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, ContextMenuCommandType, Embed, Assertions$3 as EmbedAssertions, Faces, FooterOptions, MappedComponentTypes, SelectMenuComponent, SelectMenuOption, Assertions$1 as SlashCommandAssertions, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, TimestampStyles, TimestampStylesString, ToAPIApplicationCommandOptions, blockQuote, bold, channelMention, codeBlock, createComponent, formatEmoji, hideLinkEmbed, hyperlink, inlineCode, italic, memberNicknameMention, quote, roleMention, spoiler, strikethrough, time, underscore, userMention };
1147
+ export { ActionRow, ActionRowComponent, AuthorOptions, ButtonComponent, Component, Assertions$2 as ComponentAssertions, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, ContextMenuCommandType, Embed, Assertions$3 as EmbedAssertions, Faces, FooterOptions, MappedComponentTypes, MessageComponent, SelectMenuComponent, SelectMenuOption, Assertions$1 as SlashCommandAssertions, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, TimestampStyles, TimestampStylesString, ToAPIApplicationCommandOptions, UnsafeButtonComponent, UnsafeEmbed, UnsafeSelectMenuComponent, UnsafeSelectMenuOption, blockQuote, bold, channelMention, codeBlock, createComponent, formatEmoji, hideLinkEmbed, hyperlink, inlineCode, italic, memberNicknameMention, quote, roleMention, spoiler, strikethrough, time, underscore, userMention };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- var bt=Object.create;var O=Object.defineProperty;var Le=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var ft=Object.getPrototypeOf,xt=Object.prototype.hasOwnProperty;var At=(t,e,i)=>e in t?O(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i;var ke=t=>O(t,"__esModule",{value:!0});var B=(t,e)=>{for(var i in e)O(t,i,{get:e[i],enumerable:!0})},De=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ct(e))!xt.call(t,a)&&(i||a!=="default")&&O(t,a,{get:()=>e[a],enumerable:!(n=Le(e,a))||n.enumerable});return t},yt=(t,e)=>De(ke(O(t!=null?bt(ft(t)):{},"default",!e&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t),Ot=(t=>(e,i)=>t&&t.get(e)||(i=De(ke({}),e,1),t&&t.set(e,i),i))(typeof WeakMap!="undefined"?new WeakMap:0),m=(t,e,i,n)=>{for(var a=n>1?void 0:n?Le(e,i):e,y=t.length-1,w;y>=0;y--)(w=t[y])&&(a=(n?w(e,i,a):w(a))||a);return n&&a&&O(e,i,a),a};var o=(t,e,i)=>(At(t,typeof e!="symbol"?e+"":e,i),i);var Zt={};B(Zt,{ActionRow:()=>z,ButtonComponent:()=>W,ComponentAssertions:()=>Pe,ContextMenuCommandAssertions:()=>Ve,ContextMenuCommandBuilder:()=>ht,Embed:()=>N,EmbedAssertions:()=>be,Faces:()=>je,SelectMenuComponent:()=>Z,SelectMenuOption:()=>Q,SlashCommandAssertions:()=>Re,SlashCommandBooleanOption:()=>te,SlashCommandBuilder:()=>ae,SlashCommandChannelOption:()=>P,SlashCommandIntegerOption:()=>I,SlashCommandMentionableOption:()=>ie,SlashCommandNumberOption:()=>M,SlashCommandRoleOption:()=>ne,SlashCommandStringOption:()=>R,SlashCommandSubcommandBuilder:()=>u,SlashCommandSubcommandGroupBuilder:()=>A,SlashCommandUserOption:()=>re,TimestampStyles:()=>Dt,blockQuote:()=>vt,bold:()=>Tt,channelMention:()=>_t,codeBlock:()=>St,createComponent:()=>Te,formatEmoji:()=>Lt,hideLinkEmbed:()=>wt,hyperlink:()=>Bt,inlineCode:()=>gt,italic:()=>Pt,memberNicknameMention:()=>Et,quote:()=>Rt,roleMention:()=>Vt,spoiler:()=>Nt,strikethrough:()=>Mt,time:()=>kt,underscore:()=>It,userMention:()=>$t});var be={};B(be,{authorNamePredicate:()=>me,colorPredicate:()=>le,descriptionPredicate:()=>de,embedFieldPredicate:()=>Ue,embedFieldsArrayPredicate:()=>J,fieldInlinePredicate:()=>U,fieldLengthPredicate:()=>Je,fieldNamePredicate:()=>S,fieldValuePredicate:()=>D,footerTextPredicate:()=>ce,timestampPredicate:()=>ue,titlePredicate:()=>he,urlPredicate:()=>h,validateFieldLength:()=>j});var l=require("zod"),S=l.z.string().min(1).max(256),D=l.z.string().min(1).max(1024),U=l.z.boolean().optional(),Ue=l.z.object({name:S,value:D,inline:U}),J=Ue.array(),Je=l.z.number().lte(25);function j(t,e){Je.parse(t.length+e)}var me=S.nullable(),h=l.z.string().url().nullish(),le=l.z.number().gte(0).lte(16777215).nullable(),de=l.z.string().min(1).max(4096).nullable(),ce=l.z.string().min(1).max(2048).nullable(),ue=l.z.union([l.z.number(),l.z.date()]).nullable(),he=S.nullable();var N=class{constructor(e={}){o(this,"fields");o(this,"title");o(this,"description");o(this,"url");o(this,"color");o(this,"timestamp");o(this,"thumbnail");o(this,"image");o(this,"video");o(this,"author");o(this,"provider");o(this,"footer");this.title=e.title,this.description=e.description,this.url=e.url,this.color=e.color,this.thumbnail=e.thumbnail,this.image=e.image,this.video=e.video,this.author=e.author,this.provider=e.provider,this.footer=e.footer,this.fields=e.fields??[],e.timestamp&&(this.timestamp=new Date(e.timestamp).toISOString())}get length(){return(this.title?.length??0)+(this.description?.length??0)+this.fields.reduce((e,i)=>e+i.name.length+i.value.length,0)+(this.footer?.text.length??0)+(this.author?.name.length??0)}addField(e){return this.addFields(e)}addFields(...e){return J.parse(e),j(this.fields,e.length),this.fields.push(...N.normalizeFields(...e)),this}spliceFields(e,i,...n){return J.parse(n),j(this.fields,n.length-i),this.fields.splice(e,i,...N.normalizeFields(...n)),this}setAuthor(e){if(e===null)return this.author=void 0,this;let{name:i,iconURL:n,url:a}=e;return me.parse(i),h.parse(n),h.parse(a),this.author={name:i,url:a,icon_url:n},this}setColor(e){return le.parse(e),this.color=e??void 0,this}setDescription(e){return de.parse(e),this.description=e??void 0,this}setFooter(e){if(e===null)return this.footer=void 0,this;let{text:i,iconURL:n}=e;return ce.parse(i),h.parse(n),this.footer={text:i,icon_url:n},this}setImage(e){return h.parse(e),this.image=e?{url:e}:void 0,this}setThumbnail(e){return h.parse(e),this.thumbnail=e?{url:e}:void 0,this}setTimestamp(e=Date.now()){return ue.parse(e),this.timestamp=e?new Date(e).toISOString():void 0,this}setTitle(e){return he.parse(e),this.title=e??void 0,this}setURL(e){return h.parse(e),this.url=e??void 0,this}toJSON(){return{...this}}static normalizeFields(...e){return e.flat(1/0).map(i=>(S.parse(i.name),D.parse(i.value),U.parse(i.inline),{name:i.name,value:i.value,inline:i.inline??void 0}))}};function St(t,e){return typeof e=="undefined"?`\`\`\`
1
+ var yt=Object.create;var g=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var gt=Object.getOwnPropertyNames;var Ot=Object.getPrototypeOf,St=Object.prototype.hasOwnProperty;var Pt=(t,e,n)=>e in t?g(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var qe=t=>g(t,"__esModule",{value:!0}),o=(t,e)=>g(t,"name",{value:e,configurable:!0});var D=(t,e)=>{for(var n in e)g(t,n,{get:e[n],enumerable:!0})},Ge=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of gt(e))!St.call(t,a)&&(n||a!=="default")&&g(t,a,{get:()=>e[a],enumerable:!(r=Je(e,a))||r.enumerable});return t},It=(t,e)=>Ge(qe(g(t!=null?yt(Ot(t)):{},"default",!e&&t&&t.__esModule?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t),Tt=(t=>(e,n)=>t&&t.get(e)||(n=Ge(qe({}),e,1),t&&t.set(e,n),n))(typeof WeakMap!="undefined"?new WeakMap:0),m=(t,e,n,r)=>{for(var a=r>1?void 0:r?Je(e,n):e,T=t.length-1,L;T>=0;T--)(L=t[T])&&(a=(r?L(e,n,a):L(a))||a);return r&&a&&g(e,n,a),a};var i=(t,e,n)=>(Pt(t,typeof e!="symbol"?e+"":e,n),n);var Yt={};D(Yt,{ActionRow:()=>w,ButtonComponent:()=>B,ComponentAssertions:()=>we,ContextMenuCommandAssertions:()=>je,ContextMenuCommandBuilder:()=>Ue,Embed:()=>R,EmbedAssertions:()=>ge,Faces:()=>Ze,SelectMenuComponent:()=>E,SelectMenuOption:()=>G,SlashCommandAssertions:()=>$e,SlashCommandBooleanOption:()=>Z,SlashCommandBuilder:()=>X,SlashCommandChannelOption:()=>O,SlashCommandIntegerOption:()=>S,SlashCommandMentionableOption:()=>K,SlashCommandNumberOption:()=>P,SlashCommandRoleOption:()=>Q,SlashCommandStringOption:()=>I,SlashCommandSubcommandBuilder:()=>c,SlashCommandSubcommandGroupBuilder:()=>y,SlashCommandUserOption:()=>H,TimestampStyles:()=>qt,UnsafeButtonComponent:()=>J,UnsafeEmbed:()=>k,UnsafeSelectMenuComponent:()=>z,UnsafeSelectMenuOption:()=>q,blockQuote:()=>$t,bold:()=>wt,channelMention:()=>Ft,codeBlock:()=>vt,createComponent:()=>Be,formatEmoji:()=>Ut,hideLinkEmbed:()=>_t,hyperlink:()=>Vt,inlineCode:()=>Rt,italic:()=>Mt,memberNicknameMention:()=>kt,quote:()=>Nt,roleMention:()=>jt,spoiler:()=>Lt,strikethrough:()=>Et,time:()=>Jt,underscore:()=>Bt,userMention:()=>Dt});var ge={};D(ge,{authorNamePredicate:()=>be,colorPredicate:()=>fe,descriptionPredicate:()=>Ce,embedFieldPredicate:()=>ze,embedFieldsArrayPredicate:()=>te,fieldInlinePredicate:()=>ee,fieldLengthPredicate:()=>We,fieldNamePredicate:()=>v,fieldValuePredicate:()=>Y,footerTextPredicate:()=>xe,timestampPredicate:()=>Ae,titlePredicate:()=>ye,urlPredicate:()=>f,validateFieldLength:()=>oe});var d=require("zod"),v=d.z.string().min(1).max(256),Y=d.z.string().min(1).max(1024),ee=d.z.boolean().optional(),ze=d.z.object({name:v,value:Y,inline:ee}),te=ze.array(),We=d.z.number().lte(25);function oe(t,e){We.parse(t.length+e)}o(oe,"validateFieldLength");var be=v.nullable(),f=d.z.string().url().nullish(),fe=d.z.number().gte(0).lte(16777215).nullable(),Ce=d.z.string().min(1).max(4096).nullable(),xe=d.z.string().min(1).max(2048).nullable(),Ae=d.z.union([d.z.number(),d.z.date()]).nullable(),ye=v.nullable();var k=class{constructor(e={}){i(this,"fields");i(this,"title");i(this,"description");i(this,"url");i(this,"color");i(this,"timestamp");i(this,"thumbnail");i(this,"image");i(this,"video");i(this,"author");i(this,"provider");i(this,"footer");this.title=e.title,this.description=e.description,this.url=e.url,this.color=e.color,this.thumbnail=e.thumbnail,this.image=e.image,this.video=e.video,this.author=e.author,this.provider=e.provider,this.footer=e.footer,this.fields=e.fields??[],e.timestamp&&(this.timestamp=new Date(e.timestamp).toISOString())}get length(){return(this.title?.length??0)+(this.description?.length??0)+this.fields.reduce((e,n)=>e+n.name.length+n.value.length,0)+(this.footer?.text.length??0)+(this.author?.name.length??0)}addField(e){return this.addFields(e)}addFields(...e){return this.fields.push(...R.normalizeFields(...e)),this}spliceFields(e,n,...r){return this.fields.splice(e,n,...R.normalizeFields(...r)),this}setFields(...e){return this.spliceFields(0,this.fields.length,...e),this}setAuthor(e){return e===null?(Reflect.set(this,"author",void 0),this):(Reflect.set(this,"author",{name:e.name,url:e.url,icon_url:e.iconURL}),this)}setColor(e){return Reflect.set(this,"color",e??void 0),this}setDescription(e){return Reflect.set(this,"description",e??void 0),this}setFooter(e){return e===null?(Reflect.set(this,"footer",void 0),this):(Reflect.set(this,"footer",{text:e.text,icon_url:e.iconURL}),this)}setImage(e){return Reflect.set(this,"image",e?{url:e}:void 0),this}setThumbnail(e){return Reflect.set(this,"thumbnail",e?{url:e}:void 0),this}setTimestamp(e=Date.now()){return Reflect.set(this,"timestamp",e?new Date(e).toISOString():void 0),this}setTitle(e){return Reflect.set(this,"title",e??void 0),this}setURL(e){return Reflect.set(this,"url",e??void 0),this}toJSON(){return{...this}}static normalizeFields(...e){return e.flat(1/0).map(n=>({name:n.name,value:n.value,inline:n.inline??void 0}))}};o(k,"UnsafeEmbed");var R=class extends k{addFields(...e){return oe(this.fields,e.length),super.addFields(...te.parse(e))}spliceFields(e,n,...r){return oe(this.fields,r.length-n),super.spliceFields(e,n,...te.parse(r))}setAuthor(e){return e===null?super.setAuthor(null):(be.parse(e.name),f.parse(e.iconURL),f.parse(e.url),super.setAuthor(e))}setColor(e){return super.setColor(fe.parse(e))}setDescription(e){return super.setDescription(Ce.parse(e))}setFooter(e){return e===null?super.setFooter(null):(xe.parse(e.text),f.parse(e.iconURL),super.setFooter(e))}setImage(e){return super.setImage(f.parse(e))}setThumbnail(e){return super.setThumbnail(f.parse(e))}setTimestamp(e=Date.now()){return super.setTimestamp(Ae.parse(e))}setTitle(e){return super.setTitle(ye.parse(e))}setURL(e){return super.setURL(f.parse(e))}static normalizeFields(...e){return e.flat(1/0).map(n=>(v.parse(n.name),Y.parse(n.value),ee.parse(n.inline),{name:n.name,value:n.value,inline:n.inline??void 0}))}};o(R,"Embed");function vt(t,e){return typeof e=="undefined"?`\`\`\`
2
2
  ${t}\`\`\``:`\`\`\`${t}
3
- ${e}\`\`\``}function gt(t){return`\`${t}\``}function Pt(t){return`_${t}_`}function Tt(t){return`**${t}**`}function It(t){return`__${t}__`}function Mt(t){return`~~${t}~~`}function Rt(t){return`> ${t}`}function vt(t){return`>>> ${t}`}function wt(t){return`<${t}>`}function Bt(t,e,i){return i?`[${t}](${e} "${i}")`:`[${t}](${e})`}function Nt(t){return`||${t}||`}function $t(t){return`<@${t}>`}function Et(t){return`<@!${t}>`}function _t(t){return`<#${t}>`}function Vt(t){return`<@&${t}>`}function Lt(t,e=!1){return`<${e?"a":""}:_:${t}>`}function kt(t,e){return typeof t!="number"&&(t=Math.floor((t?.getTime()??Date.now())/1e3)),typeof e=="string"?`<t:${t}:${e}>`:`<t:${t}>`}var Dt={ShortTime:"t",LongTime:"T",ShortDate:"d",LongDate:"D",ShortDateTime:"f",LongDateTime:"F",RelativeTime:"R"},je=(n=>(n.Shrug="\xAF\\_(\u30C4)\\_/\xAF",n.Tableflip="(\u256F\xB0\u25A1\xB0\uFF09\u256F\uFE35 \u253B\u2501\u253B",n.Unflip="\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)",n))(je||{});var Pe={};B(Pe,{buttonLabelValidator:()=>Ce,buttonStyleValidator:()=>fe,customIdValidator:()=>g,defaultValidator:()=>ye,disabledValidator:()=>E,emojiValidator:()=>$,labelValueValidator:()=>_,minMaxValidator:()=>F,optionsValidator:()=>qe,placeholderValidator:()=>xe,urlValidator:()=>Se,validateRequiredButtonParameters:()=>ge,validateRequiredSelectMenuOptionParameters:()=>Oe,validateRequiredSelectMenuParameters:()=>Ae});var q=require("discord-api-types/v9"),p=require("zod"),g=p.z.string().min(1).max(100),$=p.z.object({id:p.z.string(),name:p.z.string(),animated:p.z.boolean()}).partial().strict(),E=p.z.boolean(),Ce=p.z.string().nonempty().max(80),fe=p.z.number().int().min(q.ButtonStyle.Primary).max(q.ButtonStyle.Link),xe=p.z.string().max(100),F=p.z.number().int().min(0).max(25),qe=p.z.object({}).array().nonempty();function Ae(t,e){g.parse(e),qe.parse(t)}var _=p.z.string().min(1).max(100),ye=p.z.boolean();function Oe(t,e){_.parse(t),_.parse(e)}var Se=p.z.string().url();function ge(t,e,i,n,a){if(a&&n)throw new RangeError("URL and custom id are mutually exclusive");if(!e&&!i)throw new RangeError("Buttons must have a label and/or an emoji");if(t===q.ButtonStyle.Link){if(!a)throw new RangeError("Link buttons must have a url")}else if(a)throw new RangeError("Non-link buttons cannot have a url")}var Fe=require("discord-api-types/v9");var G=require("discord-api-types/v9");function Te(t){switch(t.type){case G.ComponentType.ActionRow:return new z(t);case G.ComponentType.Button:return new W(t);case G.ComponentType.SelectMenu:return new Z(t);default:throw new Error(`Cannot serialize component type: ${t.type}`)}}var z=class{constructor(e){o(this,"components",[]);o(this,"type",Fe.ComponentType.ActionRow);this.components=e?.components.map(Te)??[]}addComponents(...e){return this.components.push(...e),this}setComponents(e){return Reflect.set(this,"components",[...e]),this}toJSON(){return{...this,components:this.components.map(e=>e.toJSON())}}};var K=require("discord-api-types/v9");var W=class{constructor(e){o(this,"type",K.ComponentType.Button);o(this,"style");o(this,"label");o(this,"emoji");o(this,"disabled");o(this,"custom_id");o(this,"url");this.style=e?.style,this.label=e?.label,this.emoji=e?.emoji,this.disabled=e?.disabled,e?.style===K.ButtonStyle.Link?this.url=e.url:this.custom_id=e?.custom_id}setStyle(e){return fe.parse(e),Reflect.set(this,"style",e),this}setURL(e){return Se.parse(e),Reflect.set(this,"url",e),this}setCustomId(e){return g.parse(e),Reflect.set(this,"custom_id",e),this}setEmoji(e){return $.parse(e),Reflect.set(this,"emoji",e),this}setDisabled(e){return E.parse(e),Reflect.set(this,"disabled",e),this}setLabel(e){return Ce.parse(e),Reflect.set(this,"label",e),this}toJSON(){return ge(this.style,this.label,this.emoji,this.custom_id,this.url),{...this}}};var Ge=require("discord-api-types/v9");var Q=class{constructor(e){o(this,"label");o(this,"value");o(this,"description");o(this,"emoji");o(this,"default");this.label=e?.label,this.value=e?.value,this.description=e?.description,this.emoji=e?.emoji,this.default=e?.default}setLabel(e){return Reflect.set(this,"label",e),this}setValue(e){return Reflect.set(this,"value",e),this}setDescription(e){return _.parse(e),Reflect.set(this,"description",e),this}setDefault(e){return ye.parse(e),Reflect.set(this,"default",e),this}setEmoji(e){return $.parse(e),Reflect.set(this,"emoji",e),this}toJSON(){return Oe(this.label,this.value),{...this}}};var Z=class{constructor(e){o(this,"type",Ge.ComponentType.SelectMenu);o(this,"options");o(this,"placeholder");o(this,"min_values");o(this,"max_values");o(this,"custom_id");o(this,"disabled");this.options=e?.options.map(i=>new Q(i))??[],this.placeholder=e?.placeholder,this.min_values=e?.min_values,this.max_values=e?.max_values,this.custom_id=e?.custom_id,this.disabled=e?.disabled}setPlaceholder(e){return xe.parse(e),Reflect.set(this,"placeholder",e),this}setMinValues(e){return F.parse(e),Reflect.set(this,"min_values",e),this}setMaxValues(e){return F.parse(e),Reflect.set(this,"max_values",e),this}setCustomId(e){return g.parse(e),Reflect.set(this,"custom_id",e),this}setDisabled(e){return E.parse(e),Reflect.set(this,"disabled",e),this}addOptions(...e){return this.options.push(...e),this}setOptions(e){return Reflect.set(this,"options",[...e]),this}toJSON(){return Ae(this.options,this.custom_id),{...this,options:this.options.map(e=>e.toJSON())}}};var Re={};B(Re,{assertReturnOfBuilder:()=>C,validateDefaultPermission:()=>Ie,validateDescription:()=>Y,validateMaxChoicesLength:()=>Me,validateMaxOptionsLength:()=>c,validateName:()=>X,validateRequired:()=>ee,validateRequiredParameters:()=>b});var H=yt(require("@sindresorhus/is")),V=require("zod"),Ut=V.z.string().min(1).max(32).regex(/^[\P{Lu}\p{N}_-]+$/u);function X(t){Ut.parse(t)}var Jt=V.z.string().min(1).max(100);function Y(t){Jt.parse(t)}var ze=V.z.unknown().array().max(25);function c(t){ze.parse(t)}function b(t,e,i){X(t),Y(e),c(i)}var We=V.z.boolean();function Ie(t){We.parse(t)}function ee(t){We.parse(t)}function Me(t){ze.parse(t)}function C(t,e){let i=e.name;if(H.default.nullOrUndefined(t))throw new TypeError(`Expected to receive a ${i} builder, got ${t===null?"null":"undefined"} instead.`);if(H.default.primitive(t))throw new TypeError(`Expected to receive a ${i} builder, got a primitive (${typeof t}) instead.`);if(!(t instanceof e)){let n=t,a=H.default.function_(t)?t.name:n.constructor.name,y=Reflect.get(n,Symbol.toStringTag),w=y?`${a} [${y}]`:a;throw new TypeError(`Expected to receive a ${i} builder, got ${w} instead.`)}}var ut=require("ts-mixer");var Ze=require("discord-api-types/v9");var f=class{constructor(){o(this,"name");o(this,"description")}setName(e){return X(e),Reflect.set(this,"name",e),this}setDescription(e){return Y(e),Reflect.set(this,"description",e),this}};var s=class extends f{constructor(){super(...arguments);o(this,"required",!1)}setRequired(e){return ee(e),Reflect.set(this,"required",e),this}runRequiredValidations(){b(this.name,this.description,[]),ee(this.required)}};var te=class extends s{constructor(){super(...arguments);o(this,"type",Ze.ApplicationCommandOptionType.Boolean)}toJSON(){return this.runRequiredValidations(),{...this}}};var Ke=require("discord-api-types/v9"),Qe=require("ts-mixer");var d=require("discord-api-types/v9"),ve=require("zod"),jt=[d.ChannelType.GuildText,d.ChannelType.GuildVoice,d.ChannelType.GuildCategory,d.ChannelType.GuildNews,d.ChannelType.GuildStore,d.ChannelType.GuildNewsThread,d.ChannelType.GuildPublicThread,d.ChannelType.GuildPrivateThread,d.ChannelType.GuildStageVoice],qt=ve.z.union(jt.map(t=>ve.z.literal(t))),we=class{constructor(){o(this,"channel_types")}addChannelType(e){return this.channel_types===void 0&&Reflect.set(this,"channel_types",[]),qt.parse(e),this.channel_types.push(e),this}addChannelTypes(e){return e.forEach(i=>this.addChannelType(i)),this}};var P=class extends s{constructor(){super(...arguments);o(this,"type",Ke.ApplicationCommandOptionType.Channel)}toJSON(){return this.runRequiredValidations(),{...this}}};P=m([(0,Qe.mix)(we)],P);var et=require("discord-api-types/v9"),tt=require("ts-mixer"),ot=require("zod");var L=class{constructor(){o(this,"max_value");o(this,"min_value")}};var He=require("discord-api-types/v9"),T=require("zod");var oe=T.z.string().min(1).max(100),Xe=T.z.number().gt(-1/0).lt(1/0),Ye=T.z.tuple([oe,T.z.union([oe,Xe])]).array(),Ft=T.z.boolean(),x=class{constructor(){o(this,"choices");o(this,"autocomplete");o(this,"type")}addChoice(e,i){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return this.choices===void 0&&Reflect.set(this,"choices",[]),Me(this.choices),oe.parse(e),this.type===He.ApplicationCommandOptionType.String?oe.parse(i):Xe.parse(i),this.choices.push({name:e,value:i}),this}addChoices(e){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");Ye.parse(e);for(let[i,n]of e)this.addChoice(i,n);return this}setChoices(e){if(e.length>0&&this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");Ye.parse(e),Reflect.set(this,"choices",[]);for(let[i,n]of e)this.addChoice(i,n);return this}setAutocomplete(e){if(Ft.parse(e),e&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return Reflect.set(this,"autocomplete",e),this}};var it=ot.z.number().int().nonnegative(),I=class extends s{constructor(){super(...arguments);o(this,"type",et.ApplicationCommandOptionType.Integer)}setMaxValue(e){return it.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return it.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};I=m([(0,tt.mix)(L,x)],I);var nt=require("discord-api-types/v9");var ie=class extends s{constructor(){super(...arguments);o(this,"type",nt.ApplicationCommandOptionType.Mentionable)}toJSON(){return this.runRequiredValidations(),{...this}}};var rt=require("discord-api-types/v9"),at=require("ts-mixer"),st=require("zod");var pt=st.z.number().nonnegative(),M=class extends s{constructor(){super(...arguments);o(this,"type",rt.ApplicationCommandOptionType.Number)}setMaxValue(e){return pt.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return pt.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};M=m([(0,at.mix)(L,x)],M);var mt=require("discord-api-types/v9");var ne=class extends s{constructor(){super(...arguments);o(this,"type",mt.ApplicationCommandOptionType.Role)}toJSON(){return this.runRequiredValidations(),{...this}}};var lt=require("discord-api-types/v9"),dt=require("ts-mixer");var R=class extends s{constructor(){super(...arguments);o(this,"type",lt.ApplicationCommandOptionType.String)}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};R=m([(0,dt.mix)(x)],R);var ct=require("discord-api-types/v9");var re=class extends s{constructor(){super(...arguments);o(this,"type",ct.ApplicationCommandOptionType.User)}toJSON(){return this.runRequiredValidations(),{...this}}};var k=class{constructor(){o(this,"options")}addBooleanOption(e){return this._sharedAddOptionMethod(e,te)}addUserOption(e){return this._sharedAddOptionMethod(e,re)}addChannelOption(e){return this._sharedAddOptionMethod(e,P)}addRoleOption(e){return this._sharedAddOptionMethod(e,ne)}addMentionableOption(e){return this._sharedAddOptionMethod(e,ie)}addStringOption(e){return this._sharedAddOptionMethod(e,R)}addIntegerOption(e){return this._sharedAddOptionMethod(e,I)}addNumberOption(e){return this._sharedAddOptionMethod(e,M)}_sharedAddOptionMethod(e,i){let{options:n}=this;c(n);let a=typeof e=="function"?e(new i):e;return C(a,i),n.push(a),this}};var Be=require("discord-api-types/v9"),Ne=require("ts-mixer");var A=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new u):e;return C(n,u),i.push(n),this}toJSON(){return b(this.name,this.description,this.options),{type:Be.ApplicationCommandOptionType.SubcommandGroup,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};A=m([(0,Ne.mix)(f)],A);var u=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[])}toJSON(){return b(this.name,this.description,this.options),{type:Be.ApplicationCommandOptionType.Subcommand,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};u=m([(0,Ne.mix)(f,k)],u);var ae=class{constructor(){o(this,"name");o(this,"description");o(this,"options",[]);o(this,"defaultPermission")}toJSON(){return b(this.name,this.description,this.options),{name:this.name,description:this.description,options:this.options.map(e=>e.toJSON()),default_permission:this.defaultPermission}}setDefaultPermission(e){return Ie(e),Reflect.set(this,"defaultPermission",e),this}addSubcommandGroup(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new A):e;return C(n,A),i.push(n),this}addSubcommand(e){let{options:i}=this;c(i);let n=typeof e=="function"?e(new u):e;return C(n,u),i.push(n),this}};ae=m([(0,ut.mix)(k,f)],ae);var Ve={};B(Ve,{validateDefaultPermission:()=>Ee,validateName:()=>se,validateRequiredParameters:()=>_e,validateType:()=>pe});var v=require("zod"),$e=require("discord-api-types/v9"),Gt=v.z.string().min(1).max(32).regex(/^( *[\p{L}\p{N}_-]+ *)+$/u),zt=v.z.union([v.z.literal($e.ApplicationCommandType.User),v.z.literal($e.ApplicationCommandType.Message)]),Wt=v.z.boolean();function Ee(t){Wt.parse(t)}function se(t){Gt.parse(t)}function pe(t){zt.parse(t)}function _e(t,e){se(t),pe(e)}var ht=class{constructor(){o(this,"name");o(this,"type");o(this,"defaultPermission")}setName(e){return se(e),Reflect.set(this,"name",e),this}setType(e){return pe(e),Reflect.set(this,"type",e),this}setDefaultPermission(e){return Ee(e),Reflect.set(this,"defaultPermission",e),this}toJSON(){return _e(this.name,this.type),{name:this.name,type:this.type,default_permission:this.defaultPermission}}};module.exports=Ot(Zt);0&&(module.exports={ActionRow,ButtonComponent,ComponentAssertions,ContextMenuCommandAssertions,ContextMenuCommandBuilder,Embed,EmbedAssertions,Faces,SelectMenuComponent,SelectMenuOption,SlashCommandAssertions,SlashCommandBooleanOption,SlashCommandBuilder,SlashCommandChannelOption,SlashCommandIntegerOption,SlashCommandMentionableOption,SlashCommandNumberOption,SlashCommandRoleOption,SlashCommandStringOption,SlashCommandSubcommandBuilder,SlashCommandSubcommandGroupBuilder,SlashCommandUserOption,TimestampStyles,blockQuote,bold,channelMention,codeBlock,createComponent,formatEmoji,hideLinkEmbed,hyperlink,inlineCode,italic,memberNicknameMention,quote,roleMention,spoiler,strikethrough,time,underscore,userMention});
3
+ ${e}\`\`\``}o(vt,"codeBlock");function Rt(t){return`\`${t}\``}o(Rt,"inlineCode");function Mt(t){return`_${t}_`}o(Mt,"italic");function wt(t){return`**${t}**`}o(wt,"bold");function Bt(t){return`__${t}__`}o(Bt,"underscore");function Et(t){return`~~${t}~~`}o(Et,"strikethrough");function Nt(t){return`> ${t}`}o(Nt,"quote");function $t(t){return`>>> ${t}`}o($t,"blockQuote");function _t(t){return`<${t}>`}o(_t,"hideLinkEmbed");function Vt(t,e,n){return n?`[${t}](${e} "${n}")`:`[${t}](${e})`}o(Vt,"hyperlink");function Lt(t){return`||${t}||`}o(Lt,"spoiler");function Dt(t){return`<@${t}>`}o(Dt,"userMention");function kt(t){return`<@!${t}>`}o(kt,"memberNicknameMention");function Ft(t){return`<#${t}>`}o(Ft,"channelMention");function jt(t){return`<@&${t}>`}o(jt,"roleMention");function Ut(t,e=!1){return`<${e?"a":""}:_:${t}>`}o(Ut,"formatEmoji");function Jt(t,e){return typeof t!="number"&&(t=Math.floor((t?.getTime()??Date.now())/1e3)),typeof e=="string"?`<t:${t}:${e}>`:`<t:${t}>`}o(Jt,"time");var qt={ShortTime:"t",LongTime:"T",ShortDate:"d",LongDate:"D",ShortDateTime:"f",LongDateTime:"F",RelativeTime:"R"},Ze=(r=>(r.Shrug="\xAF\\_(\u30C4)\\_/\xAF",r.Tableflip="(\u256F\xB0\u25A1\xB0\uFF09\u256F\uFE35 \u253B\u2501\u253B",r.Unflip="\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)",r))(Ze||{});var we={};D(we,{buttonLabelValidator:()=>Oe,buttonStyleValidator:()=>Se,customIdValidator:()=>M,defaultValidator:()=>Te,disabledValidator:()=>j,emojiValidator:()=>F,labelValueValidator:()=>U,minMaxValidator:()=>ne,optionsValidator:()=>Ke,placeholderValidator:()=>Pe,urlValidator:()=>Re,validateRequiredButtonParameters:()=>Me,validateRequiredSelectMenuOptionParameters:()=>ve,validateRequiredSelectMenuParameters:()=>Ie});var ie=require("discord-api-types/v9"),l=require("zod"),M=l.z.string().min(1).max(100),F=l.z.object({id:l.z.string(),name:l.z.string(),animated:l.z.boolean()}).partial().strict(),j=l.z.boolean(),Oe=l.z.string().nonempty().max(80),Se=l.z.number().int().min(ie.ButtonStyle.Primary).max(ie.ButtonStyle.Link),Pe=l.z.string().max(100),ne=l.z.number().int().min(0).max(25),Ke=l.z.object({}).array().nonempty();function Ie(t,e){M.parse(e),Ke.parse(t)}o(Ie,"validateRequiredSelectMenuParameters");var U=l.z.string().min(1).max(100),Te=l.z.boolean();function ve(t,e){U.parse(t),U.parse(e)}o(ve,"validateRequiredSelectMenuOptionParameters");var Re=l.z.string().url();function Me(t,e,n,r,a){if(a&&r)throw new RangeError("URL and custom id are mutually exclusive");if(!e&&!n)throw new RangeError("Buttons must have a label and/or an emoji");if(t===ie.ButtonStyle.Link){if(!a)throw new RangeError("Link buttons must have a url")}else if(a)throw new RangeError("Non-link buttons cannot have a url")}o(Me,"validateRequiredButtonParameters");var Qe=require("discord-api-types/v9");var re=require("discord-api-types/v9");function Be(t){switch(t.type){case re.ComponentType.ActionRow:return t instanceof w?t:new w(t);case re.ComponentType.Button:return t instanceof B?t:new B(t);case re.ComponentType.SelectMenu:return t instanceof E?t:new E(t);default:throw new Error(`Cannot serialize component type: ${t.type}`)}}o(Be,"createComponent");var w=class{constructor(e){i(this,"components",[]);i(this,"type",Qe.ComponentType.ActionRow);this.components=e?.components.map(Be)??[]}addComponents(...e){return this.components.push(...e),this}setComponents(e){return Reflect.set(this,"components",[...e]),this}toJSON(){return{...this,components:this.components.map(e=>e.toJSON())}}};o(w,"ActionRow");var se=require("discord-api-types/v9"),J=class{constructor(e){i(this,"type",se.ComponentType.Button);i(this,"style");i(this,"label");i(this,"emoji");i(this,"disabled");i(this,"custom_id");i(this,"url");this.style=e?.style,this.label=e?.label,this.emoji=e?.emoji,this.disabled=e?.disabled,e?.style===se.ButtonStyle.Link?this.url=e.url:this.custom_id=e?.custom_id}setStyle(e){return Reflect.set(this,"style",e),this}setURL(e){return Reflect.set(this,"url",e),this}setCustomId(e){return Reflect.set(this,"custom_id",e),this}setEmoji(e){return Reflect.set(this,"emoji",e),this}setDisabled(e){return Reflect.set(this,"disabled",e),this}setLabel(e){return Reflect.set(this,"label",e),this}toJSON(){return{...this}}};o(J,"UnsafeButtonComponent");var B=class extends J{setStyle(e){return super.setStyle(Se.parse(e))}setURL(e){return super.setURL(Re.parse(e))}setCustomId(e){return super.setCustomId(M.parse(e))}setEmoji(e){return super.setEmoji(F.parse(e))}setDisabled(e){return super.setDisabled(j.parse(e))}setLabel(e){return super.setLabel(Oe.parse(e))}toJSON(){return Me(this.style,this.label,this.emoji,this.custom_id,this.url),super.toJSON()}};o(B,"ButtonComponent");var He=require("discord-api-types/v9");var q=class{constructor(e){i(this,"label");i(this,"value");i(this,"description");i(this,"emoji");i(this,"default");this.label=e?.label,this.value=e?.value,this.description=e?.description,this.emoji=e?.emoji,this.default=e?.default}setLabel(e){return Reflect.set(this,"label",e),this}setValue(e){return Reflect.set(this,"value",e),this}setDescription(e){return Reflect.set(this,"description",e),this}setDefault(e){return Reflect.set(this,"default",e),this}setEmoji(e){return Reflect.set(this,"emoji",e),this}toJSON(){return{...this}}};o(q,"UnsafeSelectMenuOption");var G=class extends q{setDescription(e){return super.setDescription(U.parse(e))}setDefault(e){return super.setDefault(Te.parse(e))}setEmoji(e){return super.setEmoji(F.parse(e))}toJSON(){return ve(this.label,this.value),super.toJSON()}};o(G,"SelectMenuOption");var z=class{constructor(e){i(this,"type",He.ComponentType.SelectMenu);i(this,"options");i(this,"placeholder");i(this,"min_values");i(this,"max_values");i(this,"custom_id");i(this,"disabled");this.options=e?.options.map(n=>new G(n))??[],this.placeholder=e?.placeholder,this.min_values=e?.min_values,this.max_values=e?.max_values,this.custom_id=e?.custom_id,this.disabled=e?.disabled}setPlaceholder(e){return Reflect.set(this,"placeholder",e),this}setMinValues(e){return Reflect.set(this,"min_values",e),this}setMaxValues(e){return Reflect.set(this,"max_values",e),this}setCustomId(e){return Reflect.set(this,"custom_id",e),this}setDisabled(e){return Reflect.set(this,"disabled",e),this}addOptions(...e){return this.options.push(...e),this}setOptions(e){return Reflect.set(this,"options",[...e]),this}toJSON(){return{...this,options:this.options.map(e=>e.toJSON())}}};o(z,"UnsafeSelectMenuComponent");var E=class extends z{setPlaceholder(e){return super.setPlaceholder(Pe.parse(e))}setMinValues(e){return super.setMinValues(ne.parse(e))}setMaxValues(e){return super.setMaxValues(ne.parse(e))}setCustomId(e){return super.setCustomId(M.parse(e))}setDisabled(e){return super.setDisabled(j.parse(e))}toJSON(){return Ie(this.options,this.custom_id),super.toJSON()}};o(E,"SelectMenuComponent");var $e={};D($e,{assertReturnOfBuilder:()=>x,validateDefaultPermission:()=>Ee,validateDescription:()=>le,validateMaxChoicesLength:()=>Ne,validateMaxOptionsLength:()=>h,validateName:()=>pe,validateRequired:()=>me,validateRequiredParameters:()=>C});var ae=It(require("@sindresorhus/is")),W=require("zod"),Gt=W.z.string().min(1).max(32).regex(/^[\P{Lu}\p{N}_-]+$/u);function pe(t){Gt.parse(t)}o(pe,"validateName");var zt=W.z.string().min(1).max(100);function le(t){zt.parse(t)}o(le,"validateDescription");var Xe=W.z.unknown().array().max(25);function h(t){Xe.parse(t)}o(h,"validateMaxOptionsLength");function C(t,e,n){pe(t),le(e),h(n)}o(C,"validateRequiredParameters");var Ye=W.z.boolean();function Ee(t){Ye.parse(t)}o(Ee,"validateDefaultPermission");function me(t){Ye.parse(t)}o(me,"validateRequired");function Ne(t){Xe.parse(t)}o(Ne,"validateMaxChoicesLength");function x(t,e){let n=e.name;if(ae.default.nullOrUndefined(t))throw new TypeError(`Expected to receive a ${n} builder, got ${t===null?"null":"undefined"} instead.`);if(ae.default.primitive(t))throw new TypeError(`Expected to receive a ${n} builder, got a primitive (${typeof t}) instead.`);if(!(t instanceof e)){let r=t,a=ae.default.function_(t)?t.name:r.constructor.name,T=Reflect.get(r,Symbol.toStringTag),L=T?`${a} [${T}]`:a;throw new TypeError(`Expected to receive a ${n} builder, got ${L} instead.`)}}o(x,"assertReturnOfBuilder");var At=require("ts-mixer");var et=require("discord-api-types/v9");var b=class{constructor(){i(this,"name");i(this,"description")}setName(e){return pe(e),Reflect.set(this,"name",e),this}setDescription(e){return le(e),Reflect.set(this,"description",e),this}};o(b,"SharedNameAndDescription");var p=class extends b{constructor(){super(...arguments);i(this,"required",!1)}setRequired(e){return me(e),Reflect.set(this,"required",e),this}runRequiredValidations(){C(this.name,this.description,[]),me(this.required)}};o(p,"ApplicationCommandOptionBase");var Z=class extends p{constructor(){super(...arguments);i(this,"type",et.ApplicationCommandOptionType.Boolean)}toJSON(){return this.runRequiredValidations(),{...this}}};o(Z,"SlashCommandBooleanOption");var tt=require("discord-api-types/v9"),ot=require("ts-mixer");var u=require("discord-api-types/v9"),_e=require("zod"),Wt=[u.ChannelType.GuildText,u.ChannelType.GuildVoice,u.ChannelType.GuildCategory,u.ChannelType.GuildNews,u.ChannelType.GuildStore,u.ChannelType.GuildNewsThread,u.ChannelType.GuildPublicThread,u.ChannelType.GuildPrivateThread,u.ChannelType.GuildStageVoice],Zt=_e.z.union(Wt.map(t=>_e.z.literal(t))),de=class{constructor(){i(this,"channel_types")}addChannelType(e){return this.channel_types===void 0&&Reflect.set(this,"channel_types",[]),Zt.parse(e),this.channel_types.push(e),this}addChannelTypes(e){return e.forEach(n=>this.addChannelType(n)),this}};o(de,"ApplicationCommandOptionChannelTypesMixin");var O=class extends p{constructor(){super(...arguments);i(this,"type",tt.ApplicationCommandOptionType.Channel)}toJSON(){return this.runRequiredValidations(),{...this}}};o(O,"SlashCommandChannelOption"),O=m([(0,ot.mix)(de)],O);var st=require("discord-api-types/v9"),at=require("ts-mixer"),pt=require("zod");var N=class{constructor(){i(this,"max_value");i(this,"min_value")}};o(N,"ApplicationCommandNumericOptionMinMaxValueMixin");var it=require("discord-api-types/v9"),$=require("zod");var ue=$.z.string().min(1).max(100),nt=$.z.number().gt(-1/0).lt(1/0),rt=$.z.tuple([ue,$.z.union([ue,nt])]).array(),Kt=$.z.boolean(),A=class{constructor(){i(this,"choices");i(this,"autocomplete");i(this,"type")}addChoice(e,n){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return this.choices===void 0&&Reflect.set(this,"choices",[]),Ne(this.choices),ue.parse(e),this.type===it.ApplicationCommandOptionType.String?ue.parse(n):nt.parse(n),this.choices.push({name:e,value:n}),this}addChoices(e){if(this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");rt.parse(e);for(let[n,r]of e)this.addChoice(n,r);return this}setChoices(e){if(e.length>0&&this.autocomplete)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");rt.parse(e),Reflect.set(this,"choices",[]);for(let[n,r]of e)this.addChoice(n,r);return this}setAutocomplete(e){if(Kt.parse(e),e&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return Reflect.set(this,"autocomplete",e),this}};o(A,"ApplicationCommandOptionWithChoicesAndAutocompleteMixin");var lt=pt.z.number().int().nonnegative(),S=class extends p{constructor(){super(...arguments);i(this,"type",st.ApplicationCommandOptionType.Integer)}setMaxValue(e){return lt.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return lt.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};o(S,"SlashCommandIntegerOption"),S=m([(0,at.mix)(N,A)],S);var mt=require("discord-api-types/v9");var K=class extends p{constructor(){super(...arguments);i(this,"type",mt.ApplicationCommandOptionType.Mentionable)}toJSON(){return this.runRequiredValidations(),{...this}}};o(K,"SlashCommandMentionableOption");var dt=require("discord-api-types/v9"),ut=require("ts-mixer"),ct=require("zod");var ht=ct.z.number().nonnegative(),P=class extends p{constructor(){super(...arguments);i(this,"type",dt.ApplicationCommandOptionType.Number)}setMaxValue(e){return ht.parse(e),Reflect.set(this,"max_value",e),this}setMinValue(e){return ht.parse(e),Reflect.set(this,"min_value",e),this}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};o(P,"SlashCommandNumberOption"),P=m([(0,ut.mix)(N,A)],P);var bt=require("discord-api-types/v9");var Q=class extends p{constructor(){super(...arguments);i(this,"type",bt.ApplicationCommandOptionType.Role)}toJSON(){return this.runRequiredValidations(),{...this}}};o(Q,"SlashCommandRoleOption");var ft=require("discord-api-types/v9"),Ct=require("ts-mixer");var I=class extends p{constructor(){super(...arguments);i(this,"type",ft.ApplicationCommandOptionType.String)}toJSON(){if(this.runRequiredValidations(),this.autocomplete&&Array.isArray(this.choices)&&this.choices.length>0)throw new RangeError("Autocomplete and choices are mutually exclusive to each other.");return{...this}}};o(I,"SlashCommandStringOption"),I=m([(0,Ct.mix)(A)],I);var xt=require("discord-api-types/v9");var H=class extends p{constructor(){super(...arguments);i(this,"type",xt.ApplicationCommandOptionType.User)}toJSON(){return this.runRequiredValidations(),{...this}}};o(H,"SlashCommandUserOption");var _=class{constructor(){i(this,"options")}addBooleanOption(e){return this._sharedAddOptionMethod(e,Z)}addUserOption(e){return this._sharedAddOptionMethod(e,H)}addChannelOption(e){return this._sharedAddOptionMethod(e,O)}addRoleOption(e){return this._sharedAddOptionMethod(e,Q)}addMentionableOption(e){return this._sharedAddOptionMethod(e,K)}addStringOption(e){return this._sharedAddOptionMethod(e,I)}addIntegerOption(e){return this._sharedAddOptionMethod(e,S)}addNumberOption(e){return this._sharedAddOptionMethod(e,P)}_sharedAddOptionMethod(e,n){let{options:r}=this;h(r);let a=typeof e=="function"?e(new n):e;return x(a,n),r.push(a),this}};o(_,"SharedSlashCommandOptions");var Ve=require("discord-api-types/v9"),Le=require("ts-mixer");var y=class{constructor(){i(this,"name");i(this,"description");i(this,"options",[])}addSubcommand(e){let{options:n}=this;h(n);let r=typeof e=="function"?e(new c):e;return x(r,c),n.push(r),this}toJSON(){return C(this.name,this.description,this.options),{type:Ve.ApplicationCommandOptionType.SubcommandGroup,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};o(y,"SlashCommandSubcommandGroupBuilder"),y=m([(0,Le.mix)(b)],y);var c=class{constructor(){i(this,"name");i(this,"description");i(this,"options",[])}toJSON(){return C(this.name,this.description,this.options),{type:Ve.ApplicationCommandOptionType.Subcommand,name:this.name,description:this.description,options:this.options.map(e=>e.toJSON())}}};o(c,"SlashCommandSubcommandBuilder"),c=m([(0,Le.mix)(b,_)],c);var X=class{constructor(){i(this,"name");i(this,"description");i(this,"options",[]);i(this,"defaultPermission")}toJSON(){return C(this.name,this.description,this.options),{name:this.name,description:this.description,options:this.options.map(e=>e.toJSON()),default_permission:this.defaultPermission}}setDefaultPermission(e){return Ee(e),Reflect.set(this,"defaultPermission",e),this}addSubcommandGroup(e){let{options:n}=this;h(n);let r=typeof e=="function"?e(new y):e;return x(r,y),n.push(r),this}addSubcommand(e){let{options:n}=this;h(n);let r=typeof e=="function"?e(new c):e;return x(r,c),n.push(r),this}};o(X,"SlashCommandBuilder"),X=m([(0,At.mix)(_,b)],X);var je={};D(je,{validateDefaultPermission:()=>ke,validateName:()=>ce,validateRequiredParameters:()=>Fe,validateType:()=>he});var V=require("zod"),De=require("discord-api-types/v9"),Qt=V.z.string().min(1).max(32).regex(/^( *[\p{L}\p{N}_-]+ *)+$/u),Ht=V.z.union([V.z.literal(De.ApplicationCommandType.User),V.z.literal(De.ApplicationCommandType.Message)]),Xt=V.z.boolean();function ke(t){Xt.parse(t)}o(ke,"validateDefaultPermission");function ce(t){Qt.parse(t)}o(ce,"validateName");function he(t){Ht.parse(t)}o(he,"validateType");function Fe(t,e){ce(t),he(e)}o(Fe,"validateRequiredParameters");var Ue=class{constructor(){i(this,"name");i(this,"type");i(this,"defaultPermission")}setName(e){return ce(e),Reflect.set(this,"name",e),this}setType(e){return he(e),Reflect.set(this,"type",e),this}setDefaultPermission(e){return ke(e),Reflect.set(this,"defaultPermission",e),this}toJSON(){return Fe(this.name,this.type),{name:this.name,type:this.type,default_permission:this.defaultPermission}}};o(Ue,"ContextMenuCommandBuilder");module.exports=Tt(Yt);0&&(module.exports={ActionRow,ButtonComponent,ComponentAssertions,ContextMenuCommandAssertions,ContextMenuCommandBuilder,Embed,EmbedAssertions,Faces,SelectMenuComponent,SelectMenuOption,SlashCommandAssertions,SlashCommandBooleanOption,SlashCommandBuilder,SlashCommandChannelOption,SlashCommandIntegerOption,SlashCommandMentionableOption,SlashCommandNumberOption,SlashCommandRoleOption,SlashCommandStringOption,SlashCommandSubcommandBuilder,SlashCommandSubcommandGroupBuilder,SlashCommandUserOption,TimestampStyles,UnsafeButtonComponent,UnsafeEmbed,UnsafeSelectMenuComponent,UnsafeSelectMenuOption,blockQuote,bold,channelMention,codeBlock,createComponent,formatEmoji,hideLinkEmbed,hyperlink,inlineCode,italic,memberNicknameMention,quote,roleMention,spoiler,strikethrough,time,underscore,userMention});
4
4
  //# sourceMappingURL=index.js.map