@discordjs/formatters 0.3.3-dev.1692922197-22011575c.0 → 0.3.4-dev.1699834164-2d63d9355

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/README.md CHANGED
@@ -29,6 +29,7 @@
29
29
  npm install @discordjs/formatters
30
30
  yarn add @discordjs/formatters
31
31
  pnpm add @discordjs/formatters
32
+ bun add @discordjs/formatters
32
33
  ```
33
34
 
34
35
  ## Example usage
package/dist/index.d.mts CHANGED
@@ -173,77 +173,77 @@ declare function escapeMaskedLink(text: string): string;
173
173
  /**
174
174
  * Wraps the content inside a code block with no language.
175
175
  *
176
- * @typeParam C - This is inferred by the supplied content
176
+ * @typeParam Content - This is inferred by the supplied content
177
177
  * @param content - The content to wrap
178
178
  */
179
- declare function codeBlock<C extends string>(content: C): `\`\`\`\n${C}\n\`\`\``;
179
+ declare function codeBlock<Content extends string>(content: Content): `\`\`\`\n${Content}\n\`\`\``;
180
180
  /**
181
181
  * Wraps the content inside a code block with the specified language.
182
182
  *
183
- * @typeParam L - This is inferred by the supplied language
184
- * @typeParam C - This is inferred by the supplied content
183
+ * @typeParam Language - This is inferred by the supplied language
184
+ * @typeParam Content - This is inferred by the supplied content
185
185
  * @param language - The language for the code block
186
186
  * @param content - The content to wrap
187
187
  */
188
- declare function codeBlock<L extends string, C extends string>(language: L, content: C): `\`\`\`${L}\n${C}\n\`\`\``;
188
+ declare function codeBlock<Language extends string, Content extends string>(language: Language, content: Content): `\`\`\`${Language}\n${Content}\n\`\`\``;
189
189
  /**
190
190
  * Wraps the content inside \`backticks\` which formats it as inline code.
191
191
  *
192
- * @typeParam C - This is inferred by the supplied content
192
+ * @typeParam Content - This is inferred by the supplied content
193
193
  * @param content - The content to wrap
194
194
  */
195
- declare function inlineCode<C extends string>(content: C): `\`${C}\``;
195
+ declare function inlineCode<Content extends string>(content: Content): `\`${Content}\``;
196
196
  /**
197
197
  * Formats the content into italic text.
198
198
  *
199
- * @typeParam C - This is inferred by the supplied content
199
+ * @typeParam Content - This is inferred by the supplied content
200
200
  * @param content - The content to wrap
201
201
  */
202
- declare function italic<C extends string>(content: C): `_${C}_`;
202
+ declare function italic<Content extends string>(content: Content): `_${Content}_`;
203
203
  /**
204
204
  * Formats the content into bold text.
205
205
  *
206
- * @typeParam C - This is inferred by the supplied content
206
+ * @typeParam Content - This is inferred by the supplied content
207
207
  * @param content - The content to wrap
208
208
  */
209
- declare function bold<C extends string>(content: C): `**${C}**`;
209
+ declare function bold<Content extends string>(content: Content): `**${Content}**`;
210
210
  /**
211
211
  * Formats the content into underscored text.
212
212
  *
213
- * @typeParam C - This is inferred by the supplied content
213
+ * @typeParam Content - This is inferred by the supplied content
214
214
  * @param content - The content to wrap
215
215
  */
216
- declare function underscore<C extends string>(content: C): `__${C}__`;
216
+ declare function underscore<Content extends string>(content: Content): `__${Content}__`;
217
217
  /**
218
218
  * Formats the content into strike-through text.
219
219
  *
220
- * @typeParam C - This is inferred by the supplied content
220
+ * @typeParam Content - This is inferred by the supplied content
221
221
  * @param content - The content to wrap
222
222
  */
223
- declare function strikethrough<C extends string>(content: C): `~~${C}~~`;
223
+ declare function strikethrough<Content extends string>(content: Content): `~~${Content}~~`;
224
224
  /**
225
225
  * Formats the content into a quote.
226
226
  *
227
227
  * @remarks This needs to be at the start of the line for Discord to format it.
228
- * @typeParam C - This is inferred by the supplied content
228
+ * @typeParam Content - This is inferred by the supplied content
229
229
  * @param content - The content to wrap
230
230
  */
231
- declare function quote<C extends string>(content: C): `> ${C}`;
231
+ declare function quote<Content extends string>(content: Content): `> ${Content}`;
232
232
  /**
233
233
  * Formats the content into a block quote.
234
234
  *
235
235
  * @remarks This needs to be at the start of the line for Discord to format it.
236
- * @typeParam C - This is inferred by the supplied content
236
+ * @typeParam Content - This is inferred by the supplied content
237
237
  * @param content - The content to wrap
238
238
  */
239
- declare function blockQuote<C extends string>(content: C): `>>> ${C}`;
239
+ declare function blockQuote<Content extends string>(content: Content): `>>> ${Content}`;
240
240
  /**
241
241
  * Wraps the URL into `<>` which stops it from embedding.
242
242
  *
243
- * @typeParam C - This is inferred by the supplied content
243
+ * @typeParam Content - This is inferred by the supplied content
244
244
  * @param url - The URL to wrap
245
245
  */
246
- declare function hideLinkEmbed<C extends string>(url: C): `<${C}>`;
246
+ declare function hideLinkEmbed<Content extends string>(url: Content): `<${Content}>`;
247
247
  /**
248
248
  * Wraps the URL into `<>` which stops it from embedding.
249
249
  *
@@ -253,161 +253,219 @@ declare function hideLinkEmbed(url: URL): `<${string}>`;
253
253
  /**
254
254
  * Formats the content and the URL into a masked URL.
255
255
  *
256
- * @typeParam C - This is inferred by the supplied content
256
+ * @typeParam Content - This is inferred by the supplied content
257
257
  * @param content - The content to display
258
258
  * @param url - The URL the content links to
259
259
  */
260
- declare function hyperlink<C extends string>(content: C, url: URL): `[${C}](${string})`;
260
+ declare function hyperlink<Content extends string>(content: Content, url: URL): `[${Content}](${string})`;
261
261
  /**
262
262
  * Formats the content and the URL into a masked URL.
263
263
  *
264
- * @typeParam C - This is inferred by the supplied content
265
- * @typeParam U - This is inferred by the supplied URL
264
+ * @typeParam Content - This is inferred by the supplied content
265
+ * @typeParam Url - This is inferred by the supplied URL
266
266
  * @param content - The content to display
267
267
  * @param url - The URL the content links to
268
268
  */
269
- declare function hyperlink<C extends string, U extends string>(content: C, url: U): `[${C}](${U})`;
269
+ declare function hyperlink<Content extends string, Url extends string>(content: Content, url: Url): `[${Content}](${Url})`;
270
270
  /**
271
271
  * Formats the content and the URL into a masked URL with a custom tooltip.
272
272
  *
273
- * @typeParam C - This is inferred by the supplied content
274
- * @typeParam T - This is inferred by the supplied title
273
+ * @typeParam Content - This is inferred by the supplied content
274
+ * @typeParam Title - This is inferred by the supplied title
275
275
  * @param content - The content to display
276
276
  * @param url - The URL the content links to
277
277
  * @param title - The title shown when hovering on the masked link
278
278
  */
279
- declare function hyperlink<C extends string, T extends string>(content: C, url: URL, title: T): `[${C}](${string} "${T}")`;
279
+ declare function hyperlink<Content extends string, Title extends string>(content: Content, url: URL, title: Title): `[${Content}](${string} "${Title}")`;
280
280
  /**
281
281
  * Formats the content and the URL into a masked URL with a custom tooltip.
282
282
  *
283
- * @typeParam C - This is inferred by the supplied content
284
- * @typeParam U - This is inferred by the supplied URL
285
- * @typeParam T - This is inferred by the supplied title
283
+ * @typeParam Content - This is inferred by the supplied content
284
+ * @typeParam Url - This is inferred by the supplied URL
285
+ * @typeParam Title - This is inferred by the supplied title
286
286
  * @param content - The content to display
287
287
  * @param url - The URL the content links to
288
288
  * @param title - The title shown when hovering on the masked link
289
289
  */
290
- declare function hyperlink<C extends string, U extends string, T extends string>(content: C, url: U, title: T): `[${C}](${U} "${T}")`;
290
+ declare function hyperlink<Content extends string, Url extends string, Title extends string>(content: Content, url: Url, title: Title): `[${Content}](${Url} "${Title}")`;
291
291
  /**
292
292
  * Formats the content into a spoiler.
293
293
  *
294
- * @typeParam C - This is inferred by the supplied content
294
+ * @typeParam Content - This is inferred by the supplied content
295
295
  * @param content - The content to wrap
296
296
  */
297
- declare function spoiler<C extends string>(content: C): `||${C}||`;
297
+ declare function spoiler<Content extends string>(content: Content): `||${Content}||`;
298
298
  /**
299
299
  * Formats a user id into a user mention.
300
300
  *
301
- * @typeParam C - This is inferred by the supplied user id
301
+ * @typeParam UserId - This is inferred by the supplied user id
302
302
  * @param userId - The user id to format
303
303
  */
304
- declare function userMention<C extends Snowflake>(userId: C): `<@${C}>`;
304
+ declare function userMention<UserId extends Snowflake>(userId: UserId): `<@${UserId}>`;
305
305
  /**
306
306
  * Formats a channel id into a channel mention.
307
307
  *
308
- * @typeParam C - This is inferred by the supplied channel id
308
+ * @typeParam ChannelId - This is inferred by the supplied channel id
309
309
  * @param channelId - The channel id to format
310
310
  */
311
- declare function channelMention<C extends Snowflake>(channelId: C): `<#${C}>`;
311
+ declare function channelMention<ChannelId extends Snowflake>(channelId: ChannelId): `<#${ChannelId}>`;
312
312
  /**
313
313
  * Formats a role id into a role mention.
314
314
  *
315
- * @typeParam C - This is inferred by the supplied role id
315
+ * @typeParam RoleId - This is inferred by the supplied role id
316
316
  * @param roleId - The role id to format
317
317
  */
318
- declare function roleMention<C extends Snowflake>(roleId: C): `<@&${C}>`;
318
+ declare function roleMention<RoleId extends Snowflake>(roleId: RoleId): `<@&${RoleId}>`;
319
319
  /**
320
320
  * Formats an application command name, subcommand group name, subcommand name, and id into an application command mention.
321
321
  *
322
- * @typeParam N - This is inferred by the supplied command name
323
- * @typeParam G - This is inferred by the supplied subcommand group name
324
- * @typeParam S - This is inferred by the supplied subcommand name
325
- * @typeParam I - This is inferred by the supplied command id
322
+ * @typeParam CommandName - This is inferred by the supplied command name
323
+ * @typeParam SubcommandGroupName - This is inferred by the supplied subcommand group name
324
+ * @typeParam SubcommandName - This is inferred by the supplied subcommand name
325
+ * @typeParam CommandId - This is inferred by the supplied command id
326
326
  * @param commandName - The application command name to format
327
327
  * @param subcommandGroupName - The subcommand group name to format
328
328
  * @param subcommandName - The subcommand name to format
329
329
  * @param commandId - The application command id to format
330
330
  */
331
- declare function chatInputApplicationCommandMention<N extends string, G extends string, S extends string, I extends Snowflake>(commandName: N, subcommandGroupName: G, subcommandName: S, commandId: I): `</${N} ${G} ${S}:${I}>`;
331
+ declare function chatInputApplicationCommandMention<CommandName extends string, SubcommandGroupName extends string, SubcommandName extends string, CommandId extends Snowflake>(commandName: CommandName, subcommandGroupName: SubcommandGroupName, subcommandName: SubcommandName, commandId: CommandId): `</${CommandName} ${SubcommandGroupName} ${SubcommandName}:${CommandId}>`;
332
332
  /**
333
333
  * Formats an application command name, subcommand name, and id into an application command mention.
334
334
  *
335
- * @typeParam N - This is inferred by the supplied command name
336
- * @typeParam S - This is inferred by the supplied subcommand name
337
- * @typeParam I - This is inferred by the supplied command id
335
+ * @typeParam CommandName - This is inferred by the supplied command name
336
+ * @typeParam SubcommandName - This is inferred by the supplied subcommand name
337
+ * @typeParam CommandId - This is inferred by the supplied command id
338
338
  * @param commandName - The application command name to format
339
339
  * @param subcommandName - The subcommand name to format
340
340
  * @param commandId - The application command id to format
341
341
  */
342
- declare function chatInputApplicationCommandMention<N extends string, S extends string, I extends Snowflake>(commandName: N, subcommandName: S, commandId: I): `</${N} ${S}:${I}>`;
342
+ declare function chatInputApplicationCommandMention<CommandName extends string, SubcommandName extends string, CommandId extends Snowflake>(commandName: CommandName, subcommandName: SubcommandName, commandId: CommandId): `</${CommandName} ${SubcommandName}:${CommandId}>`;
343
343
  /**
344
344
  * Formats an application command name and id into an application command mention.
345
345
  *
346
- * @typeParam N - This is inferred by the supplied command name
347
- * @typeParam I - This is inferred by the supplied command id
346
+ * @typeParam CommandName - This is inferred by the supplied command name
347
+ * @typeParam CommandId - This is inferred by the supplied command id
348
348
  * @param commandName - The application command name to format
349
349
  * @param commandId - The application command id to format
350
350
  */
351
- declare function chatInputApplicationCommandMention<N extends string, I extends Snowflake>(commandName: N, commandId: I): `</${N}:${I}>`;
351
+ declare function chatInputApplicationCommandMention<CommandName extends string, CommandId extends Snowflake>(commandName: CommandName, commandId: CommandId): `</${CommandName}:${CommandId}>`;
352
352
  /**
353
353
  * Formats a non-animated emoji id into a fully qualified emoji identifier.
354
354
  *
355
- * @typeParam C - This is inferred by the supplied emoji id
355
+ * @typeParam EmojiId - This is inferred by the supplied emoji id
356
356
  * @param emojiId - The emoji id to format
357
357
  */
358
- declare function formatEmoji<C extends Snowflake>(emojiId: C, animated?: false): `<:_:${C}>`;
358
+ declare function formatEmoji<EmojiId extends Snowflake>(emojiId: EmojiId, animated?: false): `<:_:${EmojiId}>`;
359
359
  /**
360
360
  * Formats an animated emoji id into a fully qualified emoji identifier.
361
361
  *
362
- * @typeParam C - This is inferred by the supplied emoji id
362
+ * @typeParam EmojiId - This is inferred by the supplied emoji id
363
363
  * @param emojiId - The emoji id to format
364
364
  * @param animated - Whether the emoji is animated
365
365
  */
366
- declare function formatEmoji<C extends Snowflake>(emojiId: C, animated?: true): `<a:_:${C}>`;
366
+ declare function formatEmoji<EmojiId extends Snowflake>(emojiId: EmojiId, animated?: true): `<a:_:${EmojiId}>`;
367
367
  /**
368
368
  * Formats an emoji id into a fully qualified emoji identifier.
369
369
  *
370
- * @typeParam C - This is inferred by the supplied emoji id
370
+ * @typeParam EmojiId - This is inferred by the supplied emoji id
371
371
  * @param emojiId - The emoji id to format
372
372
  * @param animated - Whether the emoji is animated
373
373
  */
374
- declare function formatEmoji<C extends Snowflake>(emojiId: C, animated?: boolean): `<:_:${C}>` | `<a:_:${C}>`;
374
+ declare function formatEmoji<EmojiId extends Snowflake>(emojiId: EmojiId, animated?: boolean): `<:_:${EmojiId}>` | `<a:_:${EmojiId}>`;
375
375
  /**
376
376
  * Formats a channel link for a direct message channel.
377
377
  *
378
- * @typeParam C - This is inferred by the supplied channel id
378
+ * @typeParam ChannelId - This is inferred by the supplied channel id
379
379
  * @param channelId - The channel's id
380
380
  */
381
- declare function channelLink<C extends Snowflake>(channelId: C): `https://discord.com/channels/@me/${C}`;
381
+ declare function channelLink<ChannelId extends Snowflake>(channelId: ChannelId): `https://discord.com/channels/@me/${ChannelId}`;
382
382
  /**
383
383
  * Formats a channel link for a guild channel.
384
384
  *
385
- * @typeParam C - This is inferred by the supplied channel id
386
- * @typeParam G - This is inferred by the supplied guild id
385
+ * @typeParam ChannelId - This is inferred by the supplied channel id
386
+ * @typeParam GuildId - This is inferred by the supplied guild id
387
387
  * @param channelId - The channel's id
388
388
  * @param guildId - The guild's id
389
389
  */
390
- declare function channelLink<C extends Snowflake, G extends Snowflake>(channelId: C, guildId: G): `https://discord.com/channels/${G}/${C}`;
390
+ declare function channelLink<ChannelId extends Snowflake, GuildId extends Snowflake>(channelId: ChannelId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}`;
391
391
  /**
392
392
  * Formats a message link for a direct message channel.
393
393
  *
394
- * @typeParam C - This is inferred by the supplied channel id
395
- * @typeParam M - This is inferred by the supplied message id
394
+ * @typeParam ChannelId - This is inferred by the supplied channel id
395
+ * @typeParam MessageId - This is inferred by the supplied message id
396
396
  * @param channelId - The channel's id
397
397
  * @param messageId - The message's id
398
398
  */
399
- declare function messageLink<C extends Snowflake, M extends Snowflake>(channelId: C, messageId: M): `https://discord.com/channels/@me/${C}/${M}`;
399
+ declare function messageLink<ChannelId extends Snowflake, MessageId extends Snowflake>(channelId: ChannelId, messageId: MessageId): `https://discord.com/channels/@me/${ChannelId}/${MessageId}`;
400
400
  /**
401
401
  * Formats a message link for a guild channel.
402
402
  *
403
- * @typeParam C - This is inferred by the supplied channel id
404
- * @typeParam M - This is inferred by the supplied message id
405
- * @typeParam G - This is inferred by the supplied guild id
403
+ * @typeParam ChannelId - This is inferred by the supplied channel id
404
+ * @typeParam MessageId - This is inferred by the supplied message id
405
+ * @typeParam GuildId - This is inferred by the supplied guild id
406
406
  * @param channelId - The channel's id
407
407
  * @param messageId - The message's id
408
408
  * @param guildId - The guild's id
409
409
  */
410
- declare function messageLink<C extends Snowflake, M extends Snowflake, G extends Snowflake>(channelId: C, messageId: M, guildId: G): `https://discord.com/channels/${G}/${C}/${M}`;
410
+ declare function messageLink<ChannelId extends Snowflake, MessageId extends Snowflake, GuildId extends Snowflake>(channelId: ChannelId, messageId: MessageId, guildId: GuildId): `https://discord.com/channels/${GuildId}/${ChannelId}/${MessageId}`;
411
+ /**
412
+ * The heading levels for expanded markdown.
413
+ */
414
+ declare enum HeadingLevel {
415
+ /**
416
+ * The first heading level.
417
+ */
418
+ One = 1,
419
+ /**
420
+ * The second heading level.
421
+ */
422
+ Two = 2,
423
+ /**
424
+ * The third heading level.
425
+ */
426
+ Three = 3
427
+ }
428
+ /**
429
+ * Formats the content into a heading level.
430
+ *
431
+ * @typeParam Content - This is inferred by the supplied content
432
+ * @param content - The content to wrap
433
+ * @param level - The heading level
434
+ */
435
+ declare function heading<Content extends string>(content: Content, level?: HeadingLevel.One): `# ${Content}`;
436
+ /**
437
+ * Formats the content into a heading level.
438
+ *
439
+ * @typeParam Content - This is inferred by the supplied content
440
+ * @param content - The content to wrap
441
+ * @param level - The heading level
442
+ */
443
+ declare function heading<Content extends string>(content: Content, level: HeadingLevel.Two): `## ${Content}`;
444
+ /**
445
+ * Formats the content into a heading level.
446
+ *
447
+ * @typeParam Content - This is inferred by the supplied content
448
+ * @param content - The content to wrap
449
+ * @param level - The heading level
450
+ */
451
+ declare function heading<Content extends string>(content: Content, level: HeadingLevel.Three): `### ${Content}`;
452
+ /**
453
+ * A type that recursively traverses into arrays.
454
+ */
455
+ type RecursiveArray<ItemType> = readonly (ItemType | RecursiveArray<ItemType>)[];
456
+ /**
457
+ * Formats the elements in the array to an ordered list.
458
+ *
459
+ * @param list - The array of elements to list
460
+ * @param startNumber - The starting number for the list
461
+ */
462
+ declare function orderedList(list: RecursiveArray<string>, startNumber?: number): string;
463
+ /**
464
+ * Formats the elements in the array to an unordered list.
465
+ *
466
+ * @param list - The array of elements to list
467
+ */
468
+ declare function unorderedList(list: RecursiveArray<string>): string;
411
469
  /**
412
470
  * Formats a date into a short date-time string.
413
471
  *
@@ -417,27 +475,27 @@ declare function time(date?: Date): `<t:${bigint}>`;
417
475
  /**
418
476
  * Formats a date given a format style.
419
477
  *
420
- * @typeParam S - This is inferred by the supplied {@link TimestampStylesString}
478
+ * @typeParam Style - This is inferred by the supplied {@link TimestampStylesString}
421
479
  * @param date - The date to format
422
480
  * @param style - The style to use
423
481
  */
424
- declare function time<S extends TimestampStylesString>(date: Date, style: S): `<t:${bigint}:${S}>`;
482
+ declare function time<Style extends TimestampStylesString>(date: Date, style: Style): `<t:${bigint}:${Style}>`;
425
483
  /**
426
484
  * Formats the given timestamp into a short date-time string.
427
485
  *
428
- * @typeParam C - This is inferred by the supplied timestamp
486
+ * @typeParam Seconds - This is inferred by the supplied timestamp
429
487
  * @param seconds - A Unix timestamp in seconds
430
488
  */
431
- declare function time<C extends number>(seconds: C): `<t:${C}>`;
489
+ declare function time<Seconds extends number>(seconds: Seconds): `<t:${Seconds}>`;
432
490
  /**
433
491
  * Formats the given timestamp into a short date-time string.
434
492
  *
435
- * @typeParam C - This is inferred by the supplied timestamp
436
- * @typeParam S - This is inferred by the supplied {@link TimestampStylesString}
493
+ * @typeParam Seconds - This is inferred by the supplied timestamp
494
+ * @typeParam Style - This is inferred by the supplied {@link TimestampStylesString}
437
495
  * @param seconds - A Unix timestamp in seconds
438
496
  * @param style - The style to use
439
497
  */
440
- declare function time<C extends number, S extends TimestampStylesString>(seconds: C, style: S): `<t:${C}:${S}>`;
498
+ declare function time<Seconds extends number, Style extends TimestampStylesString>(seconds: Seconds, style: Style): `<t:${Seconds}:${Style}>`;
441
499
  /**
442
500
  * The {@link https://discord.com/developers/docs/reference#message-formatting-timestamp-styles | message formatting timestamp styles}
443
501
  * supported by Discord.
@@ -507,5 +565,22 @@ declare enum Faces {
507
565
  */
508
566
  Unflip = "\u252C\u2500\u252C\u30CE( \u00BA _ \u00BA\u30CE)"
509
567
  }
568
+ /**
569
+ * All the available guild navigation mentions.
570
+ */
571
+ declare enum GuildNavigationMentions {
572
+ /**
573
+ * Browse Channels tab.
574
+ */
575
+ Browse = "<id:browse>",
576
+ /**
577
+ * Customize tab with the server's {@link https://discord.com/developers/docs/resources/guild#guild-onboarding-object | onboarding prompts}.
578
+ */
579
+ Customize = "<id:customize>",
580
+ /**
581
+ * {@link https://support.discord.com/hc/articles/13497665141655 | Server Guide} tab.
582
+ */
583
+ Guide = "<id:guide>"
584
+ }
510
585
 
511
- export { EscapeMarkdownOptions, Faces, TimestampStyles, TimestampStylesString, blockQuote, bold, channelLink, channelMention, chatInputApplicationCommandMention, codeBlock, escapeBold, escapeBulletedList, escapeCodeBlock, escapeEscape, escapeHeading, escapeInlineCode, escapeItalic, escapeMarkdown, escapeMaskedLink, escapeNumberedList, escapeSpoiler, escapeStrikethrough, escapeUnderline, formatEmoji, hideLinkEmbed, hyperlink, inlineCode, italic, messageLink, quote, roleMention, spoiler, strikethrough, time, underscore, userMention };
586
+ export { EscapeMarkdownOptions, Faces, GuildNavigationMentions, HeadingLevel, RecursiveArray, TimestampStyles, TimestampStylesString, blockQuote, bold, channelLink, channelMention, chatInputApplicationCommandMention, codeBlock, escapeBold, escapeBulletedList, escapeCodeBlock, escapeEscape, escapeHeading, escapeInlineCode, escapeItalic, escapeMarkdown, escapeMaskedLink, escapeNumberedList, escapeSpoiler, escapeStrikethrough, escapeUnderline, formatEmoji, heading, hideLinkEmbed, hyperlink, inlineCode, italic, messageLink, orderedList, quote, roleMention, spoiler, strikethrough, time, underscore, unorderedList, userMention };